|
|
|
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
|
|
|
|
# yarn lockfile v1
|
|
|
|
|
|
|
|
|
|
|
|
"@discoveryjs/json-ext@^0.5.0":
|
|
|
|
version "0.5.6"
|
|
|
|
resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.6.tgz#d5e0706cf8c6acd8c6032f8d54070af261bbbb2f"
|
|
|
|
integrity sha512-ws57AidsDvREKrZKYffXddNkyaF14iHNHm8VQnZH6t99E8gczjNN0GpvcGny0imC80yQ0tHz1xVUKk/KFQSUyA==
|
|
|
|
|
|
|
|
"@nodelib/fs.scandir@2.1.5":
|
|
|
|
version "2.1.5"
|
|
|
|
resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5"
|
|
|
|
integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==
|
|
|
|
dependencies:
|
|
|
|
"@nodelib/fs.stat" "2.0.5"
|
|
|
|
run-parallel "^1.1.9"
|
|
|
|
|
|
|
|
"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2":
|
|
|
|
version "2.0.5"
|
|
|
|
resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b"
|
|
|
|
integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==
|
|
|
|
|
|
|
|
"@nodelib/fs.walk@^1.2.3":
|
|
|
|
version "1.2.8"
|
|
|
|
resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a"
|
|
|
|
integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==
|
|
|
|
dependencies:
|
|
|
|
"@nodelib/fs.scandir" "2.1.5"
|
|
|
|
fastq "^1.6.0"
|
|
|
|
|
|
|
|
"@types/body-parser@*":
|
|
|
|
version "1.19.2"
|
|
|
|
resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.2.tgz#aea2059e28b7658639081347ac4fab3de166e6f0"
|
|
|
|
integrity sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==
|
|
|
|
dependencies:
|
|
|
|
"@types/connect" "*"
|
|
|
|
"@types/node" "*"
|
|
|
|
|
|
|
|
"@types/bonjour@^3.5.9":
|
|
|
|
version "3.5.10"
|
|
|
|
resolved "https://registry.yarnpkg.com/@types/bonjour/-/bonjour-3.5.10.tgz#0f6aadfe00ea414edc86f5d106357cda9701e275"
|
|
|
|
integrity sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==
|
|
|
|
dependencies:
|
|
|
|
"@types/node" "*"
|
|
|
|
|
|
|
|
"@types/connect-history-api-fallback@^1.3.5":
|
|
|
|
version "1.3.5"
|
|
|
|
resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz#d1f7a8a09d0ed5a57aee5ae9c18ab9b803205dae"
|
|
|
|
integrity sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==
|
|
|
|
dependencies:
|
|
|
|
"@types/express-serve-static-core" "*"
|
|
|
|
"@types/node" "*"
|
|
|
|
|
|
|
|
"@types/connect@*":
|
|
|
|
version "3.4.35"
|
|
|
|
resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.35.tgz#5fcf6ae445e4021d1fc2219a4873cc73a3bb2ad1"
|
|
|
|
integrity sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==
|
|
|
|
dependencies:
|
|
|
|
"@types/node" "*"
|
|
|
|
|
|
|
|
"@types/eslint-scope@^3.7.0":
|
Lexer string interning (#1758)
This Pull Request is part of #279.
It adds a string interner to Boa, which allows many types to not contain heap-allocated strings, and just contain a `NonZeroUsize` instead. This can move types to the stack (hopefully I'll be able to move `Token`, for example, maybe some `Node` types too.
Note that the internet is for now only available in the lexer. Next steps (in this PR or future ones) would include also using interning in the parser, and finally in execution. The idea is that strings should be represented with a `Sym` until they are displayed.
Talking about display. I have changed the `ParseError` type in order to not contain anything that could contain a `Sym` (basically tokens), which might be a bit faster, but what is important is that we don't depend on the interner when displaying errors.
The issue I have now is in order to display tokens. This requires the interner if we want to know identifiers, for example. The issue here is that Rust doesn't allow using a `fmt::Formatter` (only in nightly), which is making my head hurt. Maybe someone of you can find a better way of doing this.
Then, about `cursor.expect()`, this is the only place where we don't have the expected token type as a static string, so it's failing to compile. We have the option of changing the type definition of `ParseError` to contain an owned string, but maybe we can avoid this by having a `&'static str` come from a `TokenKind` with the default values, such as "identifier" for an identifier. I wanted for you to think about it and maybe we can just add that and avoid allocations there.
Oh, and this depends on the VM-only branch, so that has to be merged before :)
Another thing to check: should the interner be in its own module?
3 years ago
|
|
|
version "3.7.3"
|
|
|
|
resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.3.tgz#125b88504b61e3c8bc6f870882003253005c3224"
|
|
|
|
integrity sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g==
|
|
|
|
dependencies:
|
|
|
|
"@types/eslint" "*"
|
|
|
|
"@types/estree" "*"
|
|
|
|
|
|
|
|
"@types/eslint@*":
|
|
|
|
version "8.4.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.4.1.tgz#c48251553e8759db9e656de3efc846954ac32304"
|
|
|
|
integrity sha512-GE44+DNEyxxh2Kc6ro/VkIj+9ma0pO0bwv9+uHSyBrikYOHr8zYcdPvnBOp1aw8s+CjRvuSx7CyWqRrNFQ59mA==
|
|
|
|
dependencies:
|
|
|
|
"@types/estree" "*"
|
|
|
|
"@types/json-schema" "*"
|
|
|
|
|
|
|
|
"@types/estree@*", "@types/estree@^0.0.50":
|
|
|
|
version "0.0.50"
|
|
|
|
resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.50.tgz#1e0caa9364d3fccd2931c3ed96fdbeaa5d4cca83"
|
|
|
|
integrity sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==
|
|
|
|
|
|
|
|
"@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.18":
|
Lexer string interning (#1758)
This Pull Request is part of #279.
It adds a string interner to Boa, which allows many types to not contain heap-allocated strings, and just contain a `NonZeroUsize` instead. This can move types to the stack (hopefully I'll be able to move `Token`, for example, maybe some `Node` types too.
Note that the internet is for now only available in the lexer. Next steps (in this PR or future ones) would include also using interning in the parser, and finally in execution. The idea is that strings should be represented with a `Sym` until they are displayed.
Talking about display. I have changed the `ParseError` type in order to not contain anything that could contain a `Sym` (basically tokens), which might be a bit faster, but what is important is that we don't depend on the interner when displaying errors.
The issue I have now is in order to display tokens. This requires the interner if we want to know identifiers, for example. The issue here is that Rust doesn't allow using a `fmt::Formatter` (only in nightly), which is making my head hurt. Maybe someone of you can find a better way of doing this.
Then, about `cursor.expect()`, this is the only place where we don't have the expected token type as a static string, so it's failing to compile. We have the option of changing the type definition of `ParseError` to contain an owned string, but maybe we can avoid this by having a `&'static str` come from a `TokenKind` with the default values, such as "identifier" for an identifier. I wanted for you to think about it and maybe we can just add that and avoid allocations there.
Oh, and this depends on the VM-only branch, so that has to be merged before :)
Another thing to check: should the interner be in its own module?
3 years ago
|
|
|
version "4.17.28"
|
|
|
|
resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz#c47def9f34ec81dc6328d0b1b5303d1ec98d86b8"
|
|
|
|
integrity sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig==
|
|
|
|
dependencies:
|
|
|
|
"@types/node" "*"
|
|
|
|
"@types/qs" "*"
|
|
|
|
"@types/range-parser" "*"
|
|
|
|
|
|
|
|
"@types/express@*":
|
|
|
|
version "4.17.13"
|
|
|
|
resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.13.tgz#a76e2995728999bab51a33fabce1d705a3709034"
|
|
|
|
integrity sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==
|
|
|
|
dependencies:
|
|
|
|
"@types/body-parser" "*"
|
|
|
|
"@types/express-serve-static-core" "^4.17.18"
|
|
|
|
"@types/qs" "*"
|
|
|
|
"@types/serve-static" "*"
|
|
|
|
|
|
|
|
"@types/glob@^7.1.1":
|
|
|
|
version "7.2.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.2.0.tgz#bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb"
|
|
|
|
integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==
|
|
|
|
dependencies:
|
|
|
|
"@types/minimatch" "*"
|
|
|
|
"@types/node" "*"
|
|
|
|
|
|
|
|
"@types/html-minifier-terser@^6.0.0":
|
|
|
|
version "6.1.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#4fc33a00c1d0c16987b1a20cf92d20614c55ac35"
|
|
|
|
integrity sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==
|
|
|
|
|
|
|
|
"@types/http-proxy@^1.17.8":
|
|
|
|
version "1.17.8"
|
|
|
|
resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.8.tgz#968c66903e7e42b483608030ee85800f22d03f55"
|
|
|
|
integrity sha512-5kPLG5BKpWYkw/LVOGWpiq3nEVqxiN32rTgI53Sk12/xHFQ2rG3ehI9IO+O3W2QoKeyB92dJkoka8SUm6BX1pA==
|
|
|
|
dependencies:
|
|
|
|
"@types/node" "*"
|
|
|
|
|
|
|
|
"@types/json-schema@*", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9":
|
|
|
|
version "7.0.9"
|
|
|
|
resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d"
|
|
|
|
integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==
|
|
|
|
|
|
|
|
"@types/mime@^1":
|
|
|
|
version "1.3.2"
|
|
|
|
resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.2.tgz#93e25bf9ee75fe0fd80b594bc4feb0e862111b5a"
|
|
|
|
integrity sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==
|
|
|
|
|
|
|
|
"@types/minimatch@*":
|
|
|
|
version "3.0.5"
|
|
|
|
resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.5.tgz#1001cc5e6a3704b83c236027e77f2f58ea010f40"
|
|
|
|
integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==
|
|
|
|
|
|
|
|
"@types/node@*":
|
|
|
|
version "17.0.13"
|
|
|
|
resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.13.tgz#5ed7ed7c662948335fcad6c412bb42d99ea754e3"
|
|
|
|
integrity sha512-Y86MAxASe25hNzlDbsviXl8jQHb0RDvKt4c40ZJQ1Don0AAL0STLZSs4N+6gLEO55pedy7r2cLwS+ZDxPm/2Bw==
|
|
|
|
|
|
|
|
"@types/qs@*":
|
|
|
|
version "6.9.7"
|
|
|
|
resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb"
|
|
|
|
integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==
|
|
|
|
|
|
|
|
"@types/range-parser@*":
|
|
|
|
version "1.2.4"
|
|
|
|
resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc"
|
|
|
|
integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==
|
|
|
|
|
|
|
|
"@types/retry@^0.12.0":
|
|
|
|
version "0.12.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.1.tgz#d8f1c0d0dc23afad6dc16a9e993a0865774b4065"
|
|
|
|
integrity sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==
|
|
|
|
|
|
|
|
"@types/serve-index@^1.9.1":
|
|
|
|
version "1.9.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/@types/serve-index/-/serve-index-1.9.1.tgz#1b5e85370a192c01ec6cec4735cf2917337a6278"
|
|
|
|
integrity sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==
|
|
|
|
dependencies:
|
|
|
|
"@types/express" "*"
|
|
|
|
|
|
|
|
"@types/serve-static@*":
|
|
|
|
version "1.13.10"
|
|
|
|
resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.10.tgz#f5e0ce8797d2d7cc5ebeda48a52c96c4fa47a8d9"
|
|
|
|
integrity sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==
|
|
|
|
dependencies:
|
|
|
|
"@types/mime" "^1"
|
|
|
|
"@types/node" "*"
|
|
|
|
|
|
|
|
"@types/sockjs@^0.3.33":
|
|
|
|
version "0.3.33"
|
|
|
|
resolved "https://registry.yarnpkg.com/@types/sockjs/-/sockjs-0.3.33.tgz#570d3a0b99ac995360e3136fd6045113b1bd236f"
|
|
|
|
integrity sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==
|
|
|
|
dependencies:
|
|
|
|
"@types/node" "*"
|
|
|
|
|
|
|
|
"@types/ws@^8.2.2":
|
|
|
|
version "8.2.2"
|
|
|
|
resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.2.2.tgz#7c5be4decb19500ae6b3d563043cd407bf366c21"
|
|
|
|
integrity sha512-NOn5eIcgWLOo6qW8AcuLZ7G8PycXu0xTxxkS6Q18VWFxgPUSOwV0pBj2a/4viNZVu25i7RIB7GttdkAIUUXOOg==
|
|
|
|
dependencies:
|
|
|
|
"@types/node" "*"
|
|
|
|
|
|
|
|
"@wasm-tool/wasm-pack-plugin@^1.6.0":
|
|
|
|
version "1.6.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/@wasm-tool/wasm-pack-plugin/-/wasm-pack-plugin-1.6.0.tgz#a2dbec777b317b04f72e13f0080a3f483cd89809"
|
|
|
|
integrity sha512-Iax4nEgIvVCZqrmuseJm7ln/muWpg7uT5fXMAT0crYo+k5JTuZE58DJvBQoeIAegA3IM9cZgfkcZjAOUCPsT1g==
|
|
|
|
dependencies:
|
|
|
|
chalk "^2.4.1"
|
|
|
|
command-exists "^1.2.7"
|
|
|
|
watchpack "^2.1.1"
|
|
|
|
which "^2.0.2"
|
|
|
|
|
|
|
|
"@webassemblyjs/ast@1.11.1":
|
|
|
|
version "1.11.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.1.tgz#2bfd767eae1a6996f432ff7e8d7fc75679c0b6a7"
|
|
|
|
integrity sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==
|
|
|
|
dependencies:
|
|
|
|
"@webassemblyjs/helper-numbers" "1.11.1"
|
|
|
|
"@webassemblyjs/helper-wasm-bytecode" "1.11.1"
|
|
|
|
|
|
|
|
"@webassemblyjs/floating-point-hex-parser@1.11.1":
|
|
|
|
version "1.11.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz#f6c61a705f0fd7a6aecaa4e8198f23d9dc179e4f"
|
|
|
|
integrity sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==
|
|
|
|
|
|
|
|
"@webassemblyjs/helper-api-error@1.11.1":
|
|
|
|
version "1.11.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz#1a63192d8788e5c012800ba6a7a46c705288fd16"
|
|
|
|
integrity sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==
|
|
|
|
|
|
|
|
"@webassemblyjs/helper-buffer@1.11.1":
|
|
|
|
version "1.11.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz#832a900eb444884cde9a7cad467f81500f5e5ab5"
|
|
|
|
integrity sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==
|
|
|
|
|
|
|
|
"@webassemblyjs/helper-numbers@1.11.1":
|
|
|
|
version "1.11.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz#64d81da219fbbba1e3bd1bfc74f6e8c4e10a62ae"
|
|
|
|
integrity sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==
|
|
|
|
dependencies:
|
|
|
|
"@webassemblyjs/floating-point-hex-parser" "1.11.1"
|
|
|
|
"@webassemblyjs/helper-api-error" "1.11.1"
|
|
|
|
"@xtuc/long" "4.2.2"
|
|
|
|
|
|
|
|
"@webassemblyjs/helper-wasm-bytecode@1.11.1":
|
|
|
|
version "1.11.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz#f328241e41e7b199d0b20c18e88429c4433295e1"
|
|
|
|
integrity sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==
|
|
|
|
|
|
|
|
"@webassemblyjs/helper-wasm-section@1.11.1":
|
|
|
|
version "1.11.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz#21ee065a7b635f319e738f0dd73bfbda281c097a"
|
|
|
|
integrity sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==
|
|
|
|
dependencies:
|
|
|
|
"@webassemblyjs/ast" "1.11.1"
|
|
|
|
"@webassemblyjs/helper-buffer" "1.11.1"
|
|
|
|
"@webassemblyjs/helper-wasm-bytecode" "1.11.1"
|
|
|
|
"@webassemblyjs/wasm-gen" "1.11.1"
|
|
|
|
|
|
|
|
"@webassemblyjs/ieee754@1.11.1":
|
|
|
|
version "1.11.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz#963929e9bbd05709e7e12243a099180812992614"
|
|
|
|
integrity sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==
|
|
|
|
dependencies:
|
|
|
|
"@xtuc/ieee754" "^1.2.0"
|
|
|
|
|
|
|
|
"@webassemblyjs/leb128@1.11.1":
|
|
|
|
version "1.11.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.1.tgz#ce814b45574e93d76bae1fb2644ab9cdd9527aa5"
|
|
|
|
integrity sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==
|
|
|
|
dependencies:
|
|
|
|
"@xtuc/long" "4.2.2"
|
|
|
|
|
|
|
|
"@webassemblyjs/utf8@1.11.1":
|
|
|
|
version "1.11.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.1.tgz#d1f8b764369e7c6e6bae350e854dec9a59f0a3ff"
|
|
|
|
integrity sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==
|
|
|
|
|
|
|
|
"@webassemblyjs/wasm-edit@1.11.1":
|
|
|
|
version "1.11.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz#ad206ebf4bf95a058ce9880a8c092c5dec8193d6"
|
|
|
|
integrity sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==
|
|
|
|
dependencies:
|
|
|
|
"@webassemblyjs/ast" "1.11.1"
|
|
|
|
"@webassemblyjs/helper-buffer" "1.11.1"
|
|
|
|
"@webassemblyjs/helper-wasm-bytecode" "1.11.1"
|
|
|
|
"@webassemblyjs/helper-wasm-section" "1.11.1"
|
|
|
|
"@webassemblyjs/wasm-gen" "1.11.1"
|
|
|
|
"@webassemblyjs/wasm-opt" "1.11.1"
|
|
|
|
"@webassemblyjs/wasm-parser" "1.11.1"
|
|
|
|
"@webassemblyjs/wast-printer" "1.11.1"
|
|
|
|
|
|
|
|
"@webassemblyjs/wasm-gen@1.11.1":
|
|
|
|
version "1.11.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz#86c5ea304849759b7d88c47a32f4f039ae3c8f76"
|
|
|
|
integrity sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==
|
|
|
|
dependencies:
|
|
|
|
"@webassemblyjs/ast" "1.11.1"
|
|
|
|
"@webassemblyjs/helper-wasm-bytecode" "1.11.1"
|
|
|
|
"@webassemblyjs/ieee754" "1.11.1"
|
|
|
|
"@webassemblyjs/leb128" "1.11.1"
|
|
|
|
"@webassemblyjs/utf8" "1.11.1"
|
|
|
|
|
|
|
|
"@webassemblyjs/wasm-opt@1.11.1":
|
|
|
|
version "1.11.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz#657b4c2202f4cf3b345f8a4c6461c8c2418985f2"
|
|
|
|
integrity sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==
|
|
|
|
dependencies:
|
|
|
|
"@webassemblyjs/ast" "1.11.1"
|
|
|
|
"@webassemblyjs/helper-buffer" "1.11.1"
|
|
|
|
"@webassemblyjs/wasm-gen" "1.11.1"
|
|
|
|
"@webassemblyjs/wasm-parser" "1.11.1"
|
|
|
|
|
|
|
|
"@webassemblyjs/wasm-parser@1.11.1":
|
|
|
|
version "1.11.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz#86ca734534f417e9bd3c67c7a1c75d8be41fb199"
|
|
|
|
integrity sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==
|
|
|
|
dependencies:
|
|
|
|
"@webassemblyjs/ast" "1.11.1"
|
|
|
|
"@webassemblyjs/helper-api-error" "1.11.1"
|
|
|
|
"@webassemblyjs/helper-wasm-bytecode" "1.11.1"
|
|
|
|
"@webassemblyjs/ieee754" "1.11.1"
|
|
|
|
"@webassemblyjs/leb128" "1.11.1"
|
|
|
|
"@webassemblyjs/utf8" "1.11.1"
|
|
|
|
|
|
|
|
"@webassemblyjs/wast-printer@1.11.1":
|
|
|
|
version "1.11.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz#d0c73beda8eec5426f10ae8ef55cee5e7084c2f0"
|
|
|
|
integrity sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==
|
|
|
|
dependencies:
|
|
|
|
"@webassemblyjs/ast" "1.11.1"
|
|
|
|
"@xtuc/long" "4.2.2"
|
|
|
|
|
|
|
|
"@webpack-cli/configtest@^1.1.1":
|
|
|
|
version "1.1.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-1.1.1.tgz#9f53b1b7946a6efc2a749095a4f450e2932e8356"
|
|
|
|
integrity sha512-1FBc1f9G4P/AxMqIgfZgeOTuRnwZMten8E7zap5zgpPInnCrP8D4Q81+4CWIch8i/Nf7nXjP0v6CjjbHOrXhKg==
|
|
|
|
|
|
|
|
"@webpack-cli/info@^1.4.1":
|
|
|
|
version "1.4.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-1.4.1.tgz#2360ea1710cbbb97ff156a3f0f24556e0fc1ebea"
|
|
|
|
integrity sha512-PKVGmazEq3oAo46Q63tpMr4HipI3OPfP7LiNOEJg963RMgT0rqheag28NCML0o3GIzA3DmxP1ZIAv9oTX1CUIA==
|
|
|
|
dependencies:
|
|
|
|
envinfo "^7.7.3"
|
|
|
|
|
|
|
|
"@webpack-cli/serve@^1.6.1":
|
|
|
|
version "1.6.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-1.6.1.tgz#0de2875ac31b46b6c5bb1ae0a7d7f0ba5678dffe"
|
|
|
|
integrity sha512-gNGTiTrjEVQ0OcVnzsRSqTxaBSr+dmTfm+qJsCDluky8uhdLWep7Gcr62QsAKHTMxjCS/8nEITsmFAhfIx+QSw==
|
|
|
|
|
|
|
|
"@xtuc/ieee754@^1.2.0":
|
|
|
|
version "1.2.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790"
|
|
|
|
integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==
|
|
|
|
|
|
|
|
"@xtuc/long@4.2.2":
|
|
|
|
version "4.2.2"
|
|
|
|
resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d"
|
|
|
|
integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==
|
|
|
|
|
|
|
|
accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7:
|
|
|
|
version "1.3.7"
|
|
|
|
resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd"
|
|
|
|
integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==
|
|
|
|
dependencies:
|
|
|
|
mime-types "~2.1.24"
|
|
|
|
negotiator "0.6.2"
|
|
|
|
|
|
|
|
acorn-import-assertions@^1.7.6:
|
|
|
|
version "1.8.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz#ba2b5939ce62c238db6d93d81c9b111b29b855e9"
|
|
|
|
integrity sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==
|
|
|
|
|
|
|
|
acorn@^8.4.1:
|
Lexer string interning (#1758)
This Pull Request is part of #279.
It adds a string interner to Boa, which allows many types to not contain heap-allocated strings, and just contain a `NonZeroUsize` instead. This can move types to the stack (hopefully I'll be able to move `Token`, for example, maybe some `Node` types too.
Note that the internet is for now only available in the lexer. Next steps (in this PR or future ones) would include also using interning in the parser, and finally in execution. The idea is that strings should be represented with a `Sym` until they are displayed.
Talking about display. I have changed the `ParseError` type in order to not contain anything that could contain a `Sym` (basically tokens), which might be a bit faster, but what is important is that we don't depend on the interner when displaying errors.
The issue I have now is in order to display tokens. This requires the interner if we want to know identifiers, for example. The issue here is that Rust doesn't allow using a `fmt::Formatter` (only in nightly), which is making my head hurt. Maybe someone of you can find a better way of doing this.
Then, about `cursor.expect()`, this is the only place where we don't have the expected token type as a static string, so it's failing to compile. We have the option of changing the type definition of `ParseError` to contain an owned string, but maybe we can avoid this by having a `&'static str` come from a `TokenKind` with the default values, such as "identifier" for an identifier. I wanted for you to think about it and maybe we can just add that and avoid allocations there.
Oh, and this depends on the VM-only branch, so that has to be merged before :)
Another thing to check: should the interner be in its own module?
3 years ago
|
|
|
version "8.7.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.0.tgz#90951fde0f8f09df93549481e5fc141445b791cf"
|
|
|
|
integrity sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==
|
|
|
|
|
|
|
|
aggregate-error@^3.0.0:
|
|
|
|
version "3.1.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a"
|
|
|
|
integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==
|
|
|
|
dependencies:
|
|
|
|
clean-stack "^2.0.0"
|
|
|
|
indent-string "^4.0.0"
|
|
|
|
|
|
|
|
ajv-formats@^2.1.1:
|
|
|
|
version "2.1.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-2.1.1.tgz#6e669400659eb74973bbf2e33327180a0996b520"
|
|
|
|
integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==
|
|
|
|
dependencies:
|
|
|
|
ajv "^8.0.0"
|
|
|
|
|
|
|
|
ajv-keywords@^3.5.2:
|
|
|
|
version "3.5.2"
|
|
|
|
resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d"
|
|
|
|
integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==
|
|
|
|
|
|
|
|
ajv-keywords@^5.0.0:
|
|
|
|
version "5.1.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz#69d4d385a4733cdbeab44964a1170a88f87f0e16"
|
|
|
|
integrity sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==
|
|
|
|
dependencies:
|
|
|
|
fast-deep-equal "^3.1.3"
|
|
|
|
|
|
|
|
ajv@^6.12.5:
|
|
|
|
version "6.12.6"
|
|
|
|
resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
|
|
|
|
integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
|
|
|
|
dependencies:
|
|
|
|
fast-deep-equal "^3.1.1"
|
|
|
|
fast-json-stable-stringify "^2.0.0"
|
|
|
|
json-schema-traverse "^0.4.1"
|
|
|
|
uri-js "^4.2.2"
|
|
|
|
|
|
|
|
ajv@^8.0.0, ajv@^8.8.0:
|
Lexer string interning (#1758)
This Pull Request is part of #279.
It adds a string interner to Boa, which allows many types to not contain heap-allocated strings, and just contain a `NonZeroUsize` instead. This can move types to the stack (hopefully I'll be able to move `Token`, for example, maybe some `Node` types too.
Note that the internet is for now only available in the lexer. Next steps (in this PR or future ones) would include also using interning in the parser, and finally in execution. The idea is that strings should be represented with a `Sym` until they are displayed.
Talking about display. I have changed the `ParseError` type in order to not contain anything that could contain a `Sym` (basically tokens), which might be a bit faster, but what is important is that we don't depend on the interner when displaying errors.
The issue I have now is in order to display tokens. This requires the interner if we want to know identifiers, for example. The issue here is that Rust doesn't allow using a `fmt::Formatter` (only in nightly), which is making my head hurt. Maybe someone of you can find a better way of doing this.
Then, about `cursor.expect()`, this is the only place where we don't have the expected token type as a static string, so it's failing to compile. We have the option of changing the type definition of `ParseError` to contain an owned string, but maybe we can avoid this by having a `&'static str` come from a `TokenKind` with the default values, such as "identifier" for an identifier. I wanted for you to think about it and maybe we can just add that and avoid allocations there.
Oh, and this depends on the VM-only branch, so that has to be merged before :)
Another thing to check: should the interner be in its own module?
3 years ago
|
|
|
version "8.9.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.9.0.tgz#738019146638824dea25edcf299dcba1b0e7eb18"
|
|
|
|
integrity sha512-qOKJyNj/h+OWx7s5DePL6Zu1KeM9jPZhwBqs+7DzP6bGOvqzVCSf0xueYmVuaC/oQ/VtS2zLMLHdQFbkka+XDQ==
|
|
|
|
dependencies:
|
|
|
|
fast-deep-equal "^3.1.1"
|
|
|
|
json-schema-traverse "^1.0.0"
|
|
|
|
require-from-string "^2.0.2"
|
|
|
|
uri-js "^4.2.2"
|
|
|
|
|
|
|
|
ansi-html-community@^0.0.8:
|
|
|
|
version "0.0.8"
|
|
|
|
resolved "https://registry.yarnpkg.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz#69fbc4d6ccbe383f9736934ae34c3f8290f1bf41"
|
|
|
|
integrity sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==
|
|
|
|
|
|
|
|
ansi-regex@^5.0.1:
|
|
|
|
version "5.0.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"
|
|
|
|
integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
|
|
|
|
|
|
|
|
ansi-regex@^6.0.1:
|
|
|
|
version "6.0.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a"
|
|
|
|
integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==
|
|
|
|
|
|
|
|
ansi-styles@^3.2.1:
|
|
|
|
version "3.2.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
|
|
|
|
integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
|
|
|
|
dependencies:
|
|
|
|
color-convert "^1.9.0"
|
|
|
|
|
|
|
|
anymatch@~3.1.2:
|
|
|
|
version "3.1.2"
|
|
|
|
resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716"
|
|
|
|
integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==
|
|
|
|
dependencies:
|
|
|
|
normalize-path "^3.0.0"
|
|
|
|
picomatch "^2.0.4"
|
|
|
|
|
|
|
|
array-flatten@1.1.1:
|
|
|
|
version "1.1.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2"
|
|
|
|
integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=
|
|
|
|
|
|
|
|
array-flatten@^2.1.0:
|
|
|
|
version "2.1.2"
|
|
|
|
resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099"
|
|
|
|
integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==
|
|
|
|
|
|
|
|
array-union@^1.0.1:
|
|
|
|
version "1.0.2"
|
|
|
|
resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39"
|
|
|
|
integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=
|
|
|
|
dependencies:
|
|
|
|
array-uniq "^1.0.1"
|
|
|
|
|
|
|
|
array-union@^2.1.0:
|
|
|
|
version "2.1.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d"
|
|
|
|
integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==
|
|
|
|
|
|
|
|
array-union@^3.0.1:
|
|
|
|
version "3.0.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/array-union/-/array-union-3.0.1.tgz#da52630d327f8b88cfbfb57728e2af5cd9b6b975"
|
|
|
|
integrity sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==
|
|
|
|
|
|
|
|
array-uniq@^1.0.1:
|
|
|
|
version "1.0.3"
|
|
|
|
resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6"
|
|
|
|
integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=
|
|
|
|
|
|
|
|
async@^2.6.2:
|
|
|
|
version "2.6.3"
|
|
|
|
resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff"
|
|
|
|
integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==
|
|
|
|
dependencies:
|
|
|
|
lodash "^4.17.14"
|
|
|
|
|
|
|
|
balanced-match@^1.0.0:
|
|
|
|
version "1.0.2"
|
|
|
|
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
|
|
|
|
integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
|
|
|
|
|
|
|
|
batch@0.6.1:
|
|
|
|
version "0.6.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16"
|
|
|
|
integrity sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=
|
|
|
|
|
|
|
|
big.js@^5.2.2:
|
|
|
|
version "5.2.2"
|
|
|
|
resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328"
|
|
|
|
integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==
|
|
|
|
|
|
|
|
binary-extensions@^2.0.0:
|
|
|
|
version "2.2.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d"
|
|
|
|
integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==
|
|
|
|
|
|
|
|
body-parser@1.19.1:
|
|
|
|
version "1.19.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.1.tgz#1499abbaa9274af3ecc9f6f10396c995943e31d4"
|
|
|
|
integrity sha512-8ljfQi5eBk8EJfECMrgqNGWPEY5jWP+1IzkzkGdFFEwFQZZyaZ21UqdaHktgiMlH0xLHqIFtE/u2OYE5dOtViA==
|
|
|
|
dependencies:
|
|
|
|
bytes "3.1.1"
|
|
|
|
content-type "~1.0.4"
|
|
|
|
debug "2.6.9"
|
|
|
|
depd "~1.1.2"
|
|
|
|
http-errors "1.8.1"
|
|
|
|
iconv-lite "0.4.24"
|
|
|
|
on-finished "~2.3.0"
|
|
|
|
qs "6.9.6"
|
|
|
|
raw-body "2.4.2"
|
|
|
|
type-is "~1.6.18"
|
|
|
|
|
|
|
|
bonjour@^3.5.0:
|
|
|
|
version "3.5.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5"
|
|
|
|
integrity sha1-jokKGD2O6aI5OzhExpGkK897yfU=
|
|
|
|
dependencies:
|
|
|
|
array-flatten "^2.1.0"
|
|
|
|
deep-equal "^1.0.1"
|
|
|
|
dns-equal "^1.0.0"
|
|
|
|
dns-txt "^2.0.2"
|
|
|
|
multicast-dns "^6.0.1"
|
|
|
|
multicast-dns-service-types "^1.1.0"
|
|
|
|
|
|
|
|
boolbase@^1.0.0:
|
|
|
|
version "1.0.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e"
|
|
|
|
integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24=
|
|
|
|
|
|
|
|
bootstrap@^5.1.3:
|
|
|
|
version "5.1.3"
|
|
|
|
resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-5.1.3.tgz#ba081b0c130f810fa70900acbc1c6d3c28fa8f34"
|
|
|
|
integrity sha512-fcQztozJ8jToQWXxVuEyXWW+dSo8AiXWKwiSSrKWsRB/Qt+Ewwza+JWoLKiTuQLaEPhdNAJ7+Dosc9DOIqNy7Q==
|
|
|
|
|
|
|
|
brace-expansion@^1.1.7:
|
|
|
|
version "1.1.11"
|
|
|
|
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
|
|
|
|
integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
|
|
|
|
dependencies:
|
|
|
|
balanced-match "^1.0.0"
|
|
|
|
concat-map "0.0.1"
|
|
|
|
|
|
|
|
braces@^3.0.1, braces@~3.0.2:
|
|
|
|
version "3.0.2"
|
|
|
|
resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
|
|
|
|
integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
|
|
|
|
dependencies:
|
|
|
|
fill-range "^7.0.1"
|
|
|
|
|
|
|
|
browserslist@^4.14.5:
|
|
|
|
version "4.19.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.19.1.tgz#4ac0435b35ab655896c31d53018b6dd5e9e4c9a3"
|
|
|
|
integrity sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==
|
|
|
|
dependencies:
|
|
|
|
caniuse-lite "^1.0.30001286"
|
|
|
|
electron-to-chromium "^1.4.17"
|
|
|
|
escalade "^3.1.1"
|
|
|
|
node-releases "^2.0.1"
|
|
|
|
picocolors "^1.0.0"
|
|
|
|
|
|
|
|
buffer-from@^1.0.0:
|
|
|
|
version "1.1.2"
|
|
|
|
resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5"
|
|
|
|
integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==
|
|
|
|
|
|
|
|
buffer-indexof@^1.0.0:
|
|
|
|
version "1.1.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c"
|
|
|
|
integrity sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==
|
|
|
|
|
|
|
|
bytes@3.0.0:
|
|
|
|
version "3.0.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048"
|
|
|
|
integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=
|
|
|
|
|
|
|
|
bytes@3.1.1:
|
|
|
|
version "3.1.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.1.tgz#3f018291cb4cbad9accb6e6970bca9c8889e879a"
|
|
|
|
integrity sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg==
|
|
|
|
|
|
|
|
call-bind@^1.0.2:
|
|
|
|
version "1.0.2"
|
|
|
|
resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c"
|
|
|
|
integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==
|
|
|
|
dependencies:
|
|
|
|
function-bind "^1.1.1"
|
|
|
|
get-intrinsic "^1.0.2"
|
|
|
|
|
|
|
|
camel-case@^4.1.2:
|
|
|
|
version "4.1.2"
|
|
|
|
resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-4.1.2.tgz#9728072a954f805228225a6deea6b38461e1bd5a"
|
|
|
|
integrity sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==
|
|
|
|
dependencies:
|
|
|
|
pascal-case "^3.1.2"
|
|
|
|
tslib "^2.0.3"
|
|
|
|
|
|
|
|
caniuse-lite@^1.0.30001286:
|
|
|
|
version "1.0.30001303"
|
|
|
|
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001303.tgz#9b168e4f43ccfc372b86f4bc5a551d9b909c95c9"
|
|
|
|
integrity sha512-/Mqc1oESndUNszJP0kx0UaQU9kEv9nNtJ7Kn8AdA0mNnH8eR1cj0kG+NbNuC1Wq/b21eA8prhKRA3bbkjONegQ==
|
|
|
|
|
|
|
|
chalk@^2.4.1:
|
|
|
|
version "2.4.2"
|
|
|
|
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
|
|
|
|
integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
|
|
|
|
dependencies:
|
|
|
|
ansi-styles "^3.2.1"
|
|
|
|
escape-string-regexp "^1.0.5"
|
|
|
|
supports-color "^5.3.0"
|
|
|
|
|
Bump webpack-dev-server from 4.3.1 to 4.4.0 (#1694)
Bumps [webpack-dev-server](https://github.com/webpack/webpack-dev-server) from 4.3.1 to 4.4.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/webpack/webpack-dev-server/releases">webpack-dev-server's releases</a>.</em></p>
<blockquote>
<h2>v4.4.0</h2>
<h2><a href="https://github.com/webpack/webpack-dev-server/compare/v4.3.1...v4.4.0">4.4.0</a> (2021-10-27)</h2>
<h3>Features</h3>
<ul>
<li>added the <code>server</code> option, now you can pass server options, example <code>{ server: { type: 'http', options: { maxHeaderSize: 32768 } } }</code>, available options for <a href="https://nodejs.org/api/http.html#httpcreateserveroptions-requestlistener"><code>http</code></a> and <a href="https://nodejs.org/api/https.html#httpscreateserveroptions-requestlistener"><code>https</code></a>, note - for <code>http2</code> is used <a href="https://github.com/spdy-http2/node-spdy"><code>spdy</code></a>, options specified in the <code>server.options</code> option take precedence over <code>https</code>/<code>http2</code> options (<a href="https://github-redirect.dependabot.com/webpack/webpack-dev-server/issues/3940">#3940</a>) (<a href="https://github.com/webpack/webpack-dev-server/commit/a70a7ef025f07ec6be69cee0b3b5204c7e3a0c5b">a70a7ef</a>)</li>
<li>added the <code>client.reconnect</code> option (<a href="https://github-redirect.dependabot.com/webpack/webpack-dev-server/issues/3912">#3912</a>) (<a href="https://github.com/webpack/webpack-dev-server/commit/5edad76bb099713210b2a8c5c29d22371df7371e">5edad76</a>)</li>
<li>improve error handling within <code>startCallback</code> and <code>endCallback</code> (<a href="https://github-redirect.dependabot.com/webpack/webpack-dev-server/issues/3969">#3969</a>) (<a href="https://github.com/webpack/webpack-dev-server/commit/b0928acadccd2251a9eb165bfae0c63c84d0d745">b0928ac</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>schema for web socket server type (<a href="https://github-redirect.dependabot.com/webpack/webpack-dev-server/issues/3913">#3913</a>) (<a href="https://github.com/webpack/webpack-dev-server/commit/f6aa6f7979dae5a44ff4597b7338027c5aab869a">f6aa6f7</a>)</li>
<li>typo in SSL information log (<a href="https://github-redirect.dependabot.com/webpack/webpack-dev-server/issues/3939">#3939</a>) (<a href="https://github.com/webpack/webpack-dev-server/commit/4c6103ba9495a29c6e142373c8dad084a20b6bc8">4c6103b</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/webpack/webpack-dev-server/blob/master/CHANGELOG.md">webpack-dev-server's changelog</a>.</em></p>
<blockquote>
<h2><a href="https://github.com/webpack/webpack-dev-server/compare/v4.3.1...v4.4.0">4.4.0</a> (2021-10-27)</h2>
<h3>Features</h3>
<ul>
<li>added the <code>server</code> option, now you can pass server options, example <code>{ server: { type: 'http', options: { maxHeaderSize: 32768 } } }</code>, available options for <a href="https://nodejs.org/api/http.html#httpcreateserveroptions-requestlistener"><code>http</code></a> and <a href="https://nodejs.org/api/https.html#httpscreateserveroptions-requestlistener"><code>https</code></a>, note - for <code>http2</code> is used <a href="https://github.com/spdy-http2/node-spdy"><code>spdy</code></a>, options specified in the <code>server.options</code> option take precedence over <code>https</code>/<code>http2</code> options (<a href="https://github-redirect.dependabot.com/webpack/webpack-dev-server/issues/3940">#3940</a>) (<a href="https://github.com/webpack/webpack-dev-server/commit/a70a7ef025f07ec6be69cee0b3b5204c7e3a0c5b">a70a7ef</a>)</li>
<li>added the <code>client.reconnect</code> option (<a href="https://github-redirect.dependabot.com/webpack/webpack-dev-server/issues/3912">#3912</a>) (<a href="https://github.com/webpack/webpack-dev-server/commit/5edad76bb099713210b2a8c5c29d22371df7371e">5edad76</a>)</li>
<li>improve error handling within <code>startCallback</code> and <code>endCallback</code> (<a href="https://github-redirect.dependabot.com/webpack/webpack-dev-server/issues/3969">#3969</a>) (<a href="https://github.com/webpack/webpack-dev-server/commit/b0928acadccd2251a9eb165bfae0c63c84d0d745">b0928ac</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>schema for web socket server type (<a href="https://github-redirect.dependabot.com/webpack/webpack-dev-server/issues/3913">#3913</a>) (<a href="https://github.com/webpack/webpack-dev-server/commit/f6aa6f7979dae5a44ff4597b7338027c5aab869a">f6aa6f7</a>)</li>
<li>typo in SSL information log (<a href="https://github-redirect.dependabot.com/webpack/webpack-dev-server/issues/3939">#3939</a>) (<a href="https://github.com/webpack/webpack-dev-server/commit/4c6103ba9495a29c6e142373c8dad084a20b6bc8">4c6103b</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/webpack/webpack-dev-server/commit/4d51f5a115e492e9031eb304a67daff775b830df"><code>4d51f5a</code></a> chore(release): 4.4.0</li>
<li><a href="https://github.com/webpack/webpack-dev-server/commit/83229056f2811cdce256730e2961e7ee201c776c"><code>8322905</code></a> chore(deps): update (<a href="https://github-redirect.dependabot.com/webpack/webpack-dev-server/issues/3984">#3984</a>)</li>
<li><a href="https://github.com/webpack/webpack-dev-server/commit/50df17cf7fcfff4ea1f26a519ce95e5c78ee7845"><code>50df17c</code></a> chore(deps-dev): bump lint-staged from 11.2.4 to 11.2.6 (<a href="https://github-redirect.dependabot.com/webpack/webpack-dev-server/issues/3982">#3982</a>)</li>
<li><a href="https://github.com/webpack/webpack-dev-server/commit/c7ba44deb15633ae1809a1284c45538a91ec140e"><code>c7ba44d</code></a> chore(deps-dev): bump webpack from 5.59.1 to 5.60.0 (<a href="https://github-redirect.dependabot.com/webpack/webpack-dev-server/issues/3981">#3981</a>)</li>
<li><a href="https://github.com/webpack/webpack-dev-server/commit/91e71349c90607ea16363947cb9afd14570f27fd"><code>91e7134</code></a> chore(deps-dev): bump marked from 3.0.7 to 3.0.8 (<a href="https://github-redirect.dependabot.com/webpack/webpack-dev-server/issues/3975">#3975</a>)</li>
<li><a href="https://github.com/webpack/webpack-dev-server/commit/a70a7ef025f07ec6be69cee0b3b5204c7e3a0c5b"><code>a70a7ef</code></a> feat: add the <code>server</code> option (<a href="https://github-redirect.dependabot.com/webpack/webpack-dev-server/issues/3940">#3940</a>)</li>
<li><a href="https://github.com/webpack/webpack-dev-server/commit/ab417d1883139c20cf0788831ff061a55259a2f3"><code>ab417d1</code></a> chore(deps-dev): bump klona from 2.0.4 to 2.0.5 (<a href="https://github-redirect.dependabot.com/webpack/webpack-dev-server/issues/3983">#3983</a>)</li>
<li><a href="https://github.com/webpack/webpack-dev-server/commit/22e770b9df73280cbd957826878cb765e567572d"><code>22e770b</code></a> chore(deps): bump open from 8.3.0 to 8.4.0 (<a href="https://github-redirect.dependabot.com/webpack/webpack-dev-server/issues/3977">#3977</a>)</li>
<li><a href="https://github.com/webpack/webpack-dev-server/commit/e65ebc3f03208590ce68232fe7e3351c8742d839"><code>e65ebc3</code></a> chore(deps-dev): bump eslint from 8.0.1 to 8.1.0 (<a href="https://github-redirect.dependabot.com/webpack/webpack-dev-server/issues/3974">#3974</a>)</li>
<li><a href="https://github.com/webpack/webpack-dev-server/commit/2a490fd644714183fd7a0777374f0d65bcf0f9cb"><code>2a490fd</code></a> chore(deps-dev): bump core-js from 3.18.3 to 3.19.0 (<a href="https://github-redirect.dependabot.com/webpack/webpack-dev-server/issues/3980">#3980</a>)</li>
<li>Additional commits viewable in <a href="https://github.com/webpack/webpack-dev-server/compare/v4.3.1...v4.4.0">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=webpack-dev-server&package-manager=npm_and_yarn&previous-version=4.3.1&new-version=4.4.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
3 years ago
|
|
|
chokidar@^3.5.2:
|
Lexer string interning (#1758)
This Pull Request is part of #279.
It adds a string interner to Boa, which allows many types to not contain heap-allocated strings, and just contain a `NonZeroUsize` instead. This can move types to the stack (hopefully I'll be able to move `Token`, for example, maybe some `Node` types too.
Note that the internet is for now only available in the lexer. Next steps (in this PR or future ones) would include also using interning in the parser, and finally in execution. The idea is that strings should be represented with a `Sym` until they are displayed.
Talking about display. I have changed the `ParseError` type in order to not contain anything that could contain a `Sym` (basically tokens), which might be a bit faster, but what is important is that we don't depend on the interner when displaying errors.
The issue I have now is in order to display tokens. This requires the interner if we want to know identifiers, for example. The issue here is that Rust doesn't allow using a `fmt::Formatter` (only in nightly), which is making my head hurt. Maybe someone of you can find a better way of doing this.
Then, about `cursor.expect()`, this is the only place where we don't have the expected token type as a static string, so it's failing to compile. We have the option of changing the type definition of `ParseError` to contain an owned string, but maybe we can avoid this by having a `&'static str` come from a `TokenKind` with the default values, such as "identifier" for an identifier. I wanted for you to think about it and maybe we can just add that and avoid allocations there.
Oh, and this depends on the VM-only branch, so that has to be merged before :)
Another thing to check: should the interner be in its own module?
3 years ago
|
|
|
version "3.5.3"
|
|
|
|
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd"
|
|
|
|
integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==
|
|
|
|
dependencies:
|
|
|
|
anymatch "~3.1.2"
|
|
|
|
braces "~3.0.2"
|
|
|
|
glob-parent "~5.1.2"
|
|
|
|
is-binary-path "~2.1.0"
|
|
|
|
is-glob "~4.0.1"
|
|
|
|
normalize-path "~3.0.0"
|
|
|
|
readdirp "~3.6.0"
|
|
|
|
optionalDependencies:
|
|
|
|
fsevents "~2.3.2"
|
|
|
|
|
|
|
|
chrome-trace-event@^1.0.2:
|
|
|
|
version "1.0.3"
|
|
|
|
resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac"
|
|
|
|
integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==
|
|
|
|
|
|
|
|
clean-css@^5.2.2:
|
|
|
|
version "5.2.4"
|
|
|
|
resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-5.2.4.tgz#982b058f8581adb2ae062520808fb2429bd487a4"
|
|
|
|
integrity sha512-nKseG8wCzEuji/4yrgM/5cthL9oTDc5UOQyFMvW/Q53oP6gLH690o1NbuTh6Y18nujr7BxlsFuS7gXLnLzKJGg==
|
|
|
|
dependencies:
|
|
|
|
source-map "~0.6.0"
|
|
|
|
|
|
|
|
clean-stack@^2.0.0:
|
|
|
|
version "2.2.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b"
|
|
|
|
integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==
|
|
|
|
|
|
|
|
clean-webpack-plugin@^4.0.0:
|
|
|
|
version "4.0.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/clean-webpack-plugin/-/clean-webpack-plugin-4.0.0.tgz#72947d4403d452f38ed61a9ff0ada8122aacd729"
|
|
|
|
integrity sha512-WuWE1nyTNAyW5T7oNyys2EN0cfP2fdRxhxnIQWiAp0bMabPdHhoGxM8A6YL2GhqwgrPnnaemVE7nv5XJ2Fhh2w==
|
|
|
|
dependencies:
|
|
|
|
del "^4.1.1"
|
|
|
|
|
|
|
|
clone-deep@^4.0.1:
|
|
|
|
version "4.0.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387"
|
|
|
|
integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==
|
|
|
|
dependencies:
|
|
|
|
is-plain-object "^2.0.4"
|
|
|
|
kind-of "^6.0.2"
|
|
|
|
shallow-clone "^3.0.0"
|
|
|
|
|
|
|
|
color-convert@^1.9.0:
|
|
|
|
version "1.9.3"
|
|
|
|
resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
|
|
|
|
integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
|
|
|
|
dependencies:
|
|
|
|
color-name "1.1.3"
|
|
|
|
|
|
|
|
color-name@1.1.3:
|
|
|
|
version "1.1.3"
|
|
|
|
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
|
|
|
|
integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
|
|
|
|
|
|
|
|
colorette@^2.0.10, colorette@^2.0.14:
|
|
|
|
version "2.0.16"
|
|
|
|
resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.16.tgz#713b9af84fdb000139f04546bd4a93f62a5085da"
|
|
|
|
integrity sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==
|
|
|
|
|
|
|
|
command-exists@^1.2.7:
|
|
|
|
version "1.2.9"
|
|
|
|
resolved "https://registry.yarnpkg.com/command-exists/-/command-exists-1.2.9.tgz#c50725af3808c8ab0260fd60b01fbfa25b954f69"
|
|
|
|
integrity sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==
|
|
|
|
|
|
|
|
commander@^2.20.0:
|
|
|
|
version "2.20.3"
|
|
|
|
resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
|
|
|
|
integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
|
|
|
|
|
|
|
|
commander@^7.0.0:
|
|
|
|
version "7.2.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7"
|
|
|
|
integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==
|
|
|
|
|
|
|
|
commander@^8.3.0:
|
|
|
|
version "8.3.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66"
|
|
|
|
integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==
|
|
|
|
|
|
|
|
compressible@~2.0.16:
|
|
|
|
version "2.0.18"
|
|
|
|
resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba"
|
|
|
|
integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==
|
|
|
|
dependencies:
|
|
|
|
mime-db ">= 1.43.0 < 2"
|
|
|
|
|
|
|
|
compression@^1.7.4:
|
|
|
|
version "1.7.4"
|
|
|
|
resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f"
|
|
|
|
integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==
|
|
|
|
dependencies:
|
|
|
|
accepts "~1.3.5"
|
|
|
|
bytes "3.0.0"
|
|
|
|
compressible "~2.0.16"
|
|
|
|
debug "2.6.9"
|
|
|
|
on-headers "~1.0.2"
|
|
|
|
safe-buffer "5.1.2"
|
|
|
|
vary "~1.1.2"
|
|
|
|
|
|
|
|
concat-map@0.0.1:
|
|
|
|
version "0.0.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
|
|
|
|
integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
|
|
|
|
|
|
|
|
connect-history-api-fallback@^1.6.0:
|
|
|
|
version "1.6.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc"
|
|
|
|
integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==
|
|
|
|
|
|
|
|
content-disposition@0.5.4:
|
|
|
|
version "0.5.4"
|
|
|
|
resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe"
|
|
|
|
integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==
|
|
|
|
dependencies:
|
|
|
|
safe-buffer "5.2.1"
|
|
|
|
|
|
|
|
content-type@~1.0.4:
|
|
|
|
version "1.0.4"
|
|
|
|
resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b"
|
|
|
|
integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==
|
|
|
|
|
|
|
|
cookie-signature@1.0.6:
|
|
|
|
version "1.0.6"
|
|
|
|
resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c"
|
|
|
|
integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw=
|
|
|
|
|
|
|
|
cookie@0.4.1:
|
|
|
|
version "0.4.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.1.tgz#afd713fe26ebd21ba95ceb61f9a8116e50a537d1"
|
|
|
|
integrity sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==
|
|
|
|
|
|
|
|
copy-webpack-plugin@^10.2.2:
|
|
|
|
version "10.2.2"
|
|
|
|
resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-10.2.2.tgz#40a0475ea3921794bc4ea78a15c431a725ae3dee"
|
|
|
|
integrity sha512-hNdS4YM9NmbpW++GT2QevyXdeG9m2NZYFNDWN63MzZzFO1IFuH1KMtVJAoXX6yzTgsVz/x00exWcgdyX57ta9g==
|
|
|
|
dependencies:
|
|
|
|
fast-glob "^3.2.7"
|
|
|
|
glob-parent "^6.0.1"
|
|
|
|
globby "^12.0.2"
|
|
|
|
normalize-path "^3.0.0"
|
|
|
|
schema-utils "^4.0.0"
|
|
|
|
serialize-javascript "^6.0.0"
|
|
|
|
|
|
|
|
core-util-is@~1.0.0:
|
|
|
|
version "1.0.3"
|
|
|
|
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85"
|
|
|
|
integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==
|
|
|
|
|
|
|
|
cross-spawn@^7.0.3:
|
|
|
|
version "7.0.3"
|
|
|
|
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
|
|
|
|
integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
|
|
|
|
dependencies:
|
|
|
|
path-key "^3.1.0"
|
|
|
|
shebang-command "^2.0.0"
|
|
|
|
which "^2.0.1"
|
|
|
|
|
|
|
|
css-loader@^6.5.1:
|
|
|
|
version "6.5.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-6.5.1.tgz#0c43d4fbe0d97f699c91e9818cb585759091d1b1"
|
|
|
|
integrity sha512-gEy2w9AnJNnD9Kuo4XAP9VflW/ujKoS9c/syO+uWMlm5igc7LysKzPXaDoR2vroROkSwsTS2tGr1yGGEbZOYZQ==
|
|
|
|
dependencies:
|
|
|
|
icss-utils "^5.1.0"
|
|
|
|
postcss "^8.2.15"
|
|
|
|
postcss-modules-extract-imports "^3.0.0"
|
|
|
|
postcss-modules-local-by-default "^4.0.0"
|
|
|
|
postcss-modules-scope "^3.0.0"
|
|
|
|
postcss-modules-values "^4.0.0"
|
|
|
|
postcss-value-parser "^4.1.0"
|
|
|
|
semver "^7.3.5"
|
|
|
|
|
|
|
|
css-select@^4.1.3:
|
Lexer string interning (#1758)
This Pull Request is part of #279.
It adds a string interner to Boa, which allows many types to not contain heap-allocated strings, and just contain a `NonZeroUsize` instead. This can move types to the stack (hopefully I'll be able to move `Token`, for example, maybe some `Node` types too.
Note that the internet is for now only available in the lexer. Next steps (in this PR or future ones) would include also using interning in the parser, and finally in execution. The idea is that strings should be represented with a `Sym` until they are displayed.
Talking about display. I have changed the `ParseError` type in order to not contain anything that could contain a `Sym` (basically tokens), which might be a bit faster, but what is important is that we don't depend on the interner when displaying errors.
The issue I have now is in order to display tokens. This requires the interner if we want to know identifiers, for example. The issue here is that Rust doesn't allow using a `fmt::Formatter` (only in nightly), which is making my head hurt. Maybe someone of you can find a better way of doing this.
Then, about `cursor.expect()`, this is the only place where we don't have the expected token type as a static string, so it's failing to compile. We have the option of changing the type definition of `ParseError` to contain an owned string, but maybe we can avoid this by having a `&'static str` come from a `TokenKind` with the default values, such as "identifier" for an identifier. I wanted for you to think about it and maybe we can just add that and avoid allocations there.
Oh, and this depends on the VM-only branch, so that has to be merged before :)
Another thing to check: should the interner be in its own module?
3 years ago
|
|
|
version "4.2.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.2.1.tgz#9e665d6ae4c7f9d65dbe69d0316e3221fb274cdd"
|
|
|
|
integrity sha512-/aUslKhzkTNCQUB2qTX84lVmfia9NyjP3WpDGtj/WxhwBzWBYUV3DgUpurHTme8UTPcPlAD1DJ+b0nN/t50zDQ==
|
|
|
|
dependencies:
|
|
|
|
boolbase "^1.0.0"
|
|
|
|
css-what "^5.1.0"
|
|
|
|
domhandler "^4.3.0"
|
|
|
|
domutils "^2.8.0"
|
|
|
|
nth-check "^2.0.1"
|
|
|
|
|
|
|
|
css-what@^5.1.0:
|
|
|
|
version "5.1.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/css-what/-/css-what-5.1.0.tgz#3f7b707aadf633baf62c2ceb8579b545bb40f7fe"
|
|
|
|
integrity sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==
|
|
|
|
|
|
|
|
cssesc@^3.0.0:
|
|
|
|
version "3.0.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee"
|
|
|
|
integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==
|
|
|
|
|
|
|
|
debug@2.6.9:
|
|
|
|
version "2.6.9"
|
|
|
|
resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
|
|
|
|
integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
|
|
|
|
dependencies:
|
|
|
|
ms "2.0.0"
|
|
|
|
|
|
|
|
debug@^3.1.1:
|
|
|
|
version "3.2.7"
|
|
|
|
resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a"
|
|
|
|
integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==
|
|
|
|
dependencies:
|
|
|
|
ms "^2.1.1"
|
|
|
|
|
|
|
|
debug@^4.1.0:
|
|
|
|
version "4.3.3"
|
|
|
|
resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664"
|
|
|
|
integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==
|
|
|
|
dependencies:
|
|
|
|
ms "2.1.2"
|
|
|
|
|
|
|
|
deep-equal@^1.0.1:
|
|
|
|
version "1.1.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a"
|
|
|
|
integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==
|
|
|
|
dependencies:
|
|
|
|
is-arguments "^1.0.4"
|
|
|
|
is-date-object "^1.0.1"
|
|
|
|
is-regex "^1.0.4"
|
|
|
|
object-is "^1.0.1"
|
|
|
|
object-keys "^1.1.1"
|
|
|
|
regexp.prototype.flags "^1.2.0"
|
|
|
|
|
|
|
|
default-gateway@^6.0.3:
|
|
|
|
version "6.0.3"
|
|
|
|
resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-6.0.3.tgz#819494c888053bdb743edbf343d6cdf7f2943a71"
|
|
|
|
integrity sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==
|
|
|
|
dependencies:
|
|
|
|
execa "^5.0.0"
|
|
|
|
|
|
|
|
define-lazy-prop@^2.0.0:
|
|
|
|
version "2.0.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f"
|
|
|
|
integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==
|
|
|
|
|
|
|
|
define-properties@^1.1.3:
|
|
|
|
version "1.1.3"
|
|
|
|
resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1"
|
|
|
|
integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==
|
|
|
|
dependencies:
|
|
|
|
object-keys "^1.0.12"
|
|
|
|
|
|
|
|
del@^4.1.1:
|
|
|
|
version "4.1.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/del/-/del-4.1.1.tgz#9e8f117222ea44a31ff3a156c049b99052a9f0b4"
|
|
|
|
integrity sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==
|
|
|
|
dependencies:
|
|
|
|
"@types/glob" "^7.1.1"
|
|
|
|
globby "^6.1.0"
|
|
|
|
is-path-cwd "^2.0.0"
|
|
|
|
is-path-in-cwd "^2.0.0"
|
|
|
|
p-map "^2.0.0"
|
|
|
|
pify "^4.0.1"
|
|
|
|
rimraf "^2.6.3"
|
|
|
|
|
|
|
|
del@^6.0.0:
|
|
|
|
version "6.0.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/del/-/del-6.0.0.tgz#0b40d0332cea743f1614f818be4feb717714c952"
|
|
|
|
integrity sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==
|
|
|
|
dependencies:
|
|
|
|
globby "^11.0.1"
|
|
|
|
graceful-fs "^4.2.4"
|
|
|
|
is-glob "^4.0.1"
|
|
|
|
is-path-cwd "^2.2.0"
|
|
|
|
is-path-inside "^3.0.2"
|
|
|
|
p-map "^4.0.0"
|
|
|
|
rimraf "^3.0.2"
|
|
|
|
slash "^3.0.0"
|
|
|
|
|
|
|
|
depd@~1.1.2:
|
|
|
|
version "1.1.2"
|
|
|
|
resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"
|
|
|
|
integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=
|
|
|
|
|
|
|
|
destroy@~1.0.4:
|
|
|
|
version "1.0.4"
|
|
|
|
resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80"
|
|
|
|
integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=
|
|
|
|
|
|
|
|
detect-node@^2.0.4:
|
|
|
|
version "2.1.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1"
|
|
|
|
integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==
|
|
|
|
|
|
|
|
dir-glob@^3.0.1:
|
|
|
|
version "3.0.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f"
|
|
|
|
integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==
|
|
|
|
dependencies:
|
|
|
|
path-type "^4.0.0"
|
|
|
|
|
|
|
|
dns-equal@^1.0.0:
|
|
|
|
version "1.0.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d"
|
|
|
|
integrity sha1-s55/HabrCnW6nBcySzR1PEfgZU0=
|
|
|
|
|
|
|
|
dns-packet@^1.3.1:
|
|
|
|
version "1.3.4"
|
|
|
|
resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.4.tgz#e3455065824a2507ba886c55a89963bb107dec6f"
|
|
|
|
integrity sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA==
|
|
|
|
dependencies:
|
|
|
|
ip "^1.1.0"
|
|
|
|
safe-buffer "^5.0.1"
|
|
|
|
|
|
|
|
dns-txt@^2.0.2:
|
|
|
|
version "2.0.2"
|
|
|
|
resolved "https://registry.yarnpkg.com/dns-txt/-/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6"
|
|
|
|
integrity sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=
|
|
|
|
dependencies:
|
|
|
|
buffer-indexof "^1.0.0"
|
|
|
|
|
|
|
|
dom-converter@^0.2.0:
|
|
|
|
version "0.2.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768"
|
|
|
|
integrity sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==
|
|
|
|
dependencies:
|
|
|
|
utila "~0.4"
|
|
|
|
|
|
|
|
dom-serializer@^1.0.1:
|
|
|
|
version "1.3.2"
|
|
|
|
resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.3.2.tgz#6206437d32ceefaec7161803230c7a20bc1b4d91"
|
|
|
|
integrity sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==
|
|
|
|
dependencies:
|
|
|
|
domelementtype "^2.0.1"
|
|
|
|
domhandler "^4.2.0"
|
|
|
|
entities "^2.0.0"
|
|
|
|
|
|
|
|
domelementtype@^2.0.1, domelementtype@^2.2.0:
|
|
|
|
version "2.2.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.2.0.tgz#9a0b6c2782ed6a1c7323d42267183df9bd8b1d57"
|
|
|
|
integrity sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==
|
|
|
|
|
|
|
|
domhandler@^4.0.0, domhandler@^4.2.0, domhandler@^4.3.0:
|
|
|
|
version "4.3.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.0.tgz#16c658c626cf966967e306f966b431f77d4a5626"
|
|
|
|
integrity sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g==
|
|
|
|
dependencies:
|
|
|
|
domelementtype "^2.2.0"
|
|
|
|
|
|
|
|
domutils@^2.5.2, domutils@^2.8.0:
|
|
|
|
version "2.8.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135"
|
|
|
|
integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==
|
|
|
|
dependencies:
|
|
|
|
dom-serializer "^1.0.1"
|
|
|
|
domelementtype "^2.2.0"
|
|
|
|
domhandler "^4.2.0"
|
|
|
|
|
|
|
|
dot-case@^3.0.4:
|
|
|
|
version "3.0.4"
|
|
|
|
resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751"
|
|
|
|
integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==
|
|
|
|
dependencies:
|
|
|
|
no-case "^3.0.4"
|
|
|
|
tslib "^2.0.3"
|
|
|
|
|
|
|
|
ee-first@1.1.1:
|
|
|
|
version "1.1.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
|
|
|
|
integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=
|
|
|
|
|
|
|
|
electron-to-chromium@^1.4.17:
|
|
|
|
version "1.4.57"
|
|
|
|
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.57.tgz#2b2766df76ac8dbc0a1d41249bc5684a31849892"
|
|
|
|
integrity sha512-FNC+P5K1n6pF+M0zIK+gFCoXcJhhzDViL3DRIGy2Fv5PohuSES1JHR7T+GlwxSxlzx4yYbsuzCZvHxcBSRCIOw==
|
|
|
|
|
|
|
|
emojis-list@^3.0.0:
|
|
|
|
version "3.0.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78"
|
|
|
|
integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==
|
|
|
|
|
|
|
|
encodeurl@~1.0.2:
|
|
|
|
version "1.0.2"
|
|
|
|
resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
|
|
|
|
integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=
|
|
|
|
|
|
|
|
enhanced-resolve@^5.8.3:
|
|
|
|
version "5.8.3"
|
|
|
|
resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.8.3.tgz#6d552d465cce0423f5b3d718511ea53826a7b2f0"
|
|
|
|
integrity sha512-EGAbGvH7j7Xt2nc0E7D99La1OiEs8LnyimkRgwExpUMScN6O+3x9tIWs7PLQZVNx4YD+00skHXPXi1yQHpAmZA==
|
|
|
|
dependencies:
|
|
|
|
graceful-fs "^4.2.4"
|
|
|
|
tapable "^2.2.0"
|
|
|
|
|
|
|
|
entities@^2.0.0:
|
|
|
|
version "2.2.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55"
|
|
|
|
integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==
|
|
|
|
|
|
|
|
envinfo@^7.7.3:
|
|
|
|
version "7.8.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.8.1.tgz#06377e3e5f4d379fea7ac592d5ad8927e0c4d475"
|
|
|
|
integrity sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==
|
|
|
|
|
|
|
|
es-module-lexer@^0.9.0:
|
|
|
|
version "0.9.3"
|
|
|
|
resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.9.3.tgz#6f13db00cc38417137daf74366f535c8eb438f19"
|
|
|
|
integrity sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==
|
|
|
|
|
|
|
|
escalade@^3.1.1:
|
|
|
|
version "3.1.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
|
|
|
|
integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==
|
|
|
|
|
|
|
|
escape-html@~1.0.3:
|
|
|
|
version "1.0.3"
|
|
|
|
resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
|
|
|
|
integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=
|
|
|
|
|
|
|
|
escape-string-regexp@^1.0.5:
|
|
|
|
version "1.0.5"
|
|
|
|
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
|
|
|
|
integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
|
|
|
|
|
|
|
|
eslint-scope@5.1.1:
|
|
|
|
version "5.1.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c"
|
|
|
|
integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==
|
|
|
|
dependencies:
|
|
|
|
esrecurse "^4.3.0"
|
|
|
|
estraverse "^4.1.1"
|
|
|
|
|
|
|
|
esrecurse@^4.3.0:
|
|
|
|
version "4.3.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921"
|
|
|
|
integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==
|
|
|
|
dependencies:
|
|
|
|
estraverse "^5.2.0"
|
|
|
|
|
|
|
|
estraverse@^4.1.1:
|
|
|
|
version "4.3.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d"
|
|
|
|
integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==
|
|
|
|
|
|
|
|
estraverse@^5.2.0:
|
|
|
|
version "5.3.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123"
|
|
|
|
integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==
|
|
|
|
|
|
|
|
etag@~1.8.1:
|
|
|
|
version "1.8.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
|
|
|
|
integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=
|
|
|
|
|
|
|
|
eventemitter3@^4.0.0:
|
|
|
|
version "4.0.7"
|
|
|
|
resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f"
|
|
|
|
integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==
|
|
|
|
|
|
|
|
events@^3.2.0:
|
|
|
|
version "3.3.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400"
|
|
|
|
integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==
|
|
|
|
|
|
|
|
execa@^5.0.0:
|
|
|
|
version "5.1.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd"
|
|
|
|
integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==
|
|
|
|
dependencies:
|
|
|
|
cross-spawn "^7.0.3"
|
|
|
|
get-stream "^6.0.0"
|
|
|
|
human-signals "^2.1.0"
|
|
|
|
is-stream "^2.0.0"
|
|
|
|
merge-stream "^2.0.0"
|
|
|
|
npm-run-path "^4.0.1"
|
|
|
|
onetime "^5.1.2"
|
|
|
|
signal-exit "^3.0.3"
|
|
|
|
strip-final-newline "^2.0.0"
|
|
|
|
|
|
|
|
express@^4.17.1:
|
|
|
|
version "4.17.2"
|
|
|
|
resolved "https://registry.yarnpkg.com/express/-/express-4.17.2.tgz#c18369f265297319beed4e5558753cc8c1364cb3"
|
|
|
|
integrity sha512-oxlxJxcQlYwqPWKVJJtvQiwHgosH/LrLSPA+H4UxpyvSS6jC5aH+5MoHFM+KABgTOt0APue4w66Ha8jCUo9QGg==
|
|
|
|
dependencies:
|
|
|
|
accepts "~1.3.7"
|
|
|
|
array-flatten "1.1.1"
|
|
|
|
body-parser "1.19.1"
|
|
|
|
content-disposition "0.5.4"
|
|
|
|
content-type "~1.0.4"
|
|
|
|
cookie "0.4.1"
|
|
|
|
cookie-signature "1.0.6"
|
|
|
|
debug "2.6.9"
|
|
|
|
depd "~1.1.2"
|
|
|
|
encodeurl "~1.0.2"
|
|
|
|
escape-html "~1.0.3"
|
|
|
|
etag "~1.8.1"
|
|
|
|
finalhandler "~1.1.2"
|
|
|
|
fresh "0.5.2"
|
|
|
|
merge-descriptors "1.0.1"
|
|
|
|
methods "~1.1.2"
|
|
|
|
on-finished "~2.3.0"
|
|
|
|
parseurl "~1.3.3"
|
|
|
|
path-to-regexp "0.1.7"
|
|
|
|
proxy-addr "~2.0.7"
|
|
|
|
qs "6.9.6"
|
|
|
|
range-parser "~1.2.1"
|
|
|
|
safe-buffer "5.2.1"
|
|
|
|
send "0.17.2"
|
|
|
|
serve-static "1.14.2"
|
|
|
|
setprototypeof "1.2.0"
|
|
|
|
statuses "~1.5.0"
|
|
|
|
type-is "~1.6.18"
|
|
|
|
utils-merge "1.0.1"
|
|
|
|
vary "~1.1.2"
|
|
|
|
|
|
|
|
fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
|
|
|
|
version "3.1.3"
|
|
|
|
resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
|
|
|
|
integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
|
|
|
|
|
Lexer string interning (#1758)
This Pull Request is part of #279.
It adds a string interner to Boa, which allows many types to not contain heap-allocated strings, and just contain a `NonZeroUsize` instead. This can move types to the stack (hopefully I'll be able to move `Token`, for example, maybe some `Node` types too.
Note that the internet is for now only available in the lexer. Next steps (in this PR or future ones) would include also using interning in the parser, and finally in execution. The idea is that strings should be represented with a `Sym` until they are displayed.
Talking about display. I have changed the `ParseError` type in order to not contain anything that could contain a `Sym` (basically tokens), which might be a bit faster, but what is important is that we don't depend on the interner when displaying errors.
The issue I have now is in order to display tokens. This requires the interner if we want to know identifiers, for example. The issue here is that Rust doesn't allow using a `fmt::Formatter` (only in nightly), which is making my head hurt. Maybe someone of you can find a better way of doing this.
Then, about `cursor.expect()`, this is the only place where we don't have the expected token type as a static string, so it's failing to compile. We have the option of changing the type definition of `ParseError` to contain an owned string, but maybe we can avoid this by having a `&'static str` come from a `TokenKind` with the default values, such as "identifier" for an identifier. I wanted for you to think about it and maybe we can just add that and avoid allocations there.
Oh, and this depends on the VM-only branch, so that has to be merged before :)
Another thing to check: should the interner be in its own module?
3 years ago
|
|
|
fast-glob@^3.2.7, fast-glob@^3.2.9:
|
|
|
|
version "3.2.11"
|
|
|
|
resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9"
|
|
|
|
integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==
|
|
|
|
dependencies:
|
|
|
|
"@nodelib/fs.stat" "^2.0.2"
|
|
|
|
"@nodelib/fs.walk" "^1.2.3"
|
|
|
|
glob-parent "^5.1.2"
|
|
|
|
merge2 "^1.3.0"
|
|
|
|
micromatch "^4.0.4"
|
|
|
|
|
|
|
|
fast-json-stable-stringify@^2.0.0:
|
|
|
|
version "2.1.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
|
|
|
|
integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
|
|
|
|
|
|
|
|
fastest-levenshtein@^1.0.12:
|
|
|
|
version "1.0.12"
|
|
|
|
resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz#9990f7d3a88cc5a9ffd1f1745745251700d497e2"
|
|
|
|
integrity sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==
|
|
|
|
|
|
|
|
fastq@^1.6.0:
|
|
|
|
version "1.13.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c"
|
|
|
|
integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==
|
|
|
|
dependencies:
|
|
|
|
reusify "^1.0.4"
|
|
|
|
|
|
|
|
faye-websocket@^0.11.3:
|
|
|
|
version "0.11.4"
|
|
|
|
resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.4.tgz#7f0d9275cfdd86a1c963dc8b65fcc451edcbb1da"
|
|
|
|
integrity sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==
|
|
|
|
dependencies:
|
|
|
|
websocket-driver ">=0.5.1"
|
|
|
|
|
|
|
|
file-loader@^6.2.0:
|
|
|
|
version "6.2.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-6.2.0.tgz#baef7cf8e1840df325e4390b4484879480eebe4d"
|
|
|
|
integrity sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==
|
|
|
|
dependencies:
|
|
|
|
loader-utils "^2.0.0"
|
|
|
|
schema-utils "^3.0.0"
|
|
|
|
|
|
|
|
fill-range@^7.0.1:
|
|
|
|
version "7.0.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
|
|
|
|
integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
|
|
|
|
dependencies:
|
|
|
|
to-regex-range "^5.0.1"
|
|
|
|
|
|
|
|
finalhandler@~1.1.2:
|
|
|
|
version "1.1.2"
|
|
|
|
resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d"
|
|
|
|
integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==
|
|
|
|
dependencies:
|
|
|
|
debug "2.6.9"
|
|
|
|
encodeurl "~1.0.2"
|
|
|
|
escape-html "~1.0.3"
|
|
|
|
on-finished "~2.3.0"
|
|
|
|
parseurl "~1.3.3"
|
|
|
|
statuses "~1.5.0"
|
|
|
|
unpipe "~1.0.0"
|
|
|
|
|
|
|
|
find-up@^4.0.0:
|
|
|
|
version "4.1.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19"
|
|
|
|
integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==
|
|
|
|
dependencies:
|
|
|
|
locate-path "^5.0.0"
|
|
|
|
path-exists "^4.0.0"
|
|
|
|
|
|
|
|
follow-redirects@^1.0.0:
|
|
|
|
version "1.14.7"
|
|
|
|
resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.7.tgz#2004c02eb9436eee9a21446a6477debf17e81685"
|
|
|
|
integrity sha512-+hbxoLbFMbRKDwohX8GkTataGqO6Jb7jGwpAlwgy2bIz25XtRm7KEzJM76R1WiNT5SwZkX4Y75SwBolkpmE7iQ==
|
|
|
|
|
|
|
|
forwarded@0.2.0:
|
|
|
|
version "0.2.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811"
|
|
|
|
integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==
|
|
|
|
|
|
|
|
fresh@0.5.2:
|
|
|
|
version "0.5.2"
|
|
|
|
resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
|
|
|
|
integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=
|
|
|
|
|
|
|
|
fs-monkey@1.0.3:
|
|
|
|
version "1.0.3"
|
|
|
|
resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.3.tgz#ae3ac92d53bb328efe0e9a1d9541f6ad8d48e2d3"
|
|
|
|
integrity sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==
|
|
|
|
|
|
|
|
fs.realpath@^1.0.0:
|
|
|
|
version "1.0.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
|
|
|
|
integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
|
|
|
|
|
|
|
|
fsevents@~2.3.2:
|
|
|
|
version "2.3.2"
|
|
|
|
resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
|
|
|
|
integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
|
|
|
|
|
|
|
|
function-bind@^1.1.1:
|
|
|
|
version "1.1.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
|
|
|
|
integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
|
|
|
|
|
|
|
|
get-intrinsic@^1.0.2:
|
|
|
|
version "1.1.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6"
|
|
|
|
integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==
|
|
|
|
dependencies:
|
|
|
|
function-bind "^1.1.1"
|
|
|
|
has "^1.0.3"
|
|
|
|
has-symbols "^1.0.1"
|
|
|
|
|
|
|
|
get-stream@^6.0.0:
|
|
|
|
version "6.0.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7"
|
|
|
|
integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==
|
|
|
|
|
|
|
|
glob-parent@^5.1.2, glob-parent@~5.1.2:
|
|
|
|
version "5.1.2"
|
|
|
|
resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
|
|
|
|
integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
|
|
|
|
dependencies:
|
|
|
|
is-glob "^4.0.1"
|
|
|
|
|
|
|
|
glob-parent@^6.0.1:
|
|
|
|
version "6.0.2"
|
|
|
|
resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3"
|
|
|
|
integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==
|
|
|
|
dependencies:
|
|
|
|
is-glob "^4.0.3"
|
|
|
|
|
|
|
|
glob-to-regexp@^0.4.1:
|
|
|
|
version "0.4.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e"
|
|
|
|
integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==
|
|
|
|
|
|
|
|
glob@^7.0.3, glob@^7.1.3:
|
|
|
|
version "7.2.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023"
|
|
|
|
integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==
|
|
|
|
dependencies:
|
|
|
|
fs.realpath "^1.0.0"
|
|
|
|
inflight "^1.0.4"
|
|
|
|
inherits "2"
|
|
|
|
minimatch "^3.0.4"
|
|
|
|
once "^1.3.0"
|
|
|
|
path-is-absolute "^1.0.0"
|
|
|
|
|
|
|
|
globby@^11.0.1:
|
Lexer string interning (#1758)
This Pull Request is part of #279.
It adds a string interner to Boa, which allows many types to not contain heap-allocated strings, and just contain a `NonZeroUsize` instead. This can move types to the stack (hopefully I'll be able to move `Token`, for example, maybe some `Node` types too.
Note that the internet is for now only available in the lexer. Next steps (in this PR or future ones) would include also using interning in the parser, and finally in execution. The idea is that strings should be represented with a `Sym` until they are displayed.
Talking about display. I have changed the `ParseError` type in order to not contain anything that could contain a `Sym` (basically tokens), which might be a bit faster, but what is important is that we don't depend on the interner when displaying errors.
The issue I have now is in order to display tokens. This requires the interner if we want to know identifiers, for example. The issue here is that Rust doesn't allow using a `fmt::Formatter` (only in nightly), which is making my head hurt. Maybe someone of you can find a better way of doing this.
Then, about `cursor.expect()`, this is the only place where we don't have the expected token type as a static string, so it's failing to compile. We have the option of changing the type definition of `ParseError` to contain an owned string, but maybe we can avoid this by having a `&'static str` come from a `TokenKind` with the default values, such as "identifier" for an identifier. I wanted for you to think about it and maybe we can just add that and avoid allocations there.
Oh, and this depends on the VM-only branch, so that has to be merged before :)
Another thing to check: should the interner be in its own module?
3 years ago
|
|
|
version "11.1.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b"
|
|
|
|
integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==
|
|
|
|
dependencies:
|
|
|
|
array-union "^2.1.0"
|
|
|
|
dir-glob "^3.0.1"
|
Lexer string interning (#1758)
This Pull Request is part of #279.
It adds a string interner to Boa, which allows many types to not contain heap-allocated strings, and just contain a `NonZeroUsize` instead. This can move types to the stack (hopefully I'll be able to move `Token`, for example, maybe some `Node` types too.
Note that the internet is for now only available in the lexer. Next steps (in this PR or future ones) would include also using interning in the parser, and finally in execution. The idea is that strings should be represented with a `Sym` until they are displayed.
Talking about display. I have changed the `ParseError` type in order to not contain anything that could contain a `Sym` (basically tokens), which might be a bit faster, but what is important is that we don't depend on the interner when displaying errors.
The issue I have now is in order to display tokens. This requires the interner if we want to know identifiers, for example. The issue here is that Rust doesn't allow using a `fmt::Formatter` (only in nightly), which is making my head hurt. Maybe someone of you can find a better way of doing this.
Then, about `cursor.expect()`, this is the only place where we don't have the expected token type as a static string, so it's failing to compile. We have the option of changing the type definition of `ParseError` to contain an owned string, but maybe we can avoid this by having a `&'static str` come from a `TokenKind` with the default values, such as "identifier" for an identifier. I wanted for you to think about it and maybe we can just add that and avoid allocations there.
Oh, and this depends on the VM-only branch, so that has to be merged before :)
Another thing to check: should the interner be in its own module?
3 years ago
|
|
|
fast-glob "^3.2.9"
|
|
|
|
ignore "^5.2.0"
|
|
|
|
merge2 "^1.4.1"
|
|
|
|
slash "^3.0.0"
|
|
|
|
|
|
|
|
globby@^12.0.2:
|
Lexer string interning (#1758)
This Pull Request is part of #279.
It adds a string interner to Boa, which allows many types to not contain heap-allocated strings, and just contain a `NonZeroUsize` instead. This can move types to the stack (hopefully I'll be able to move `Token`, for example, maybe some `Node` types too.
Note that the internet is for now only available in the lexer. Next steps (in this PR or future ones) would include also using interning in the parser, and finally in execution. The idea is that strings should be represented with a `Sym` until they are displayed.
Talking about display. I have changed the `ParseError` type in order to not contain anything that could contain a `Sym` (basically tokens), which might be a bit faster, but what is important is that we don't depend on the interner when displaying errors.
The issue I have now is in order to display tokens. This requires the interner if we want to know identifiers, for example. The issue here is that Rust doesn't allow using a `fmt::Formatter` (only in nightly), which is making my head hurt. Maybe someone of you can find a better way of doing this.
Then, about `cursor.expect()`, this is the only place where we don't have the expected token type as a static string, so it's failing to compile. We have the option of changing the type definition of `ParseError` to contain an owned string, but maybe we can avoid this by having a `&'static str` come from a `TokenKind` with the default values, such as "identifier" for an identifier. I wanted for you to think about it and maybe we can just add that and avoid allocations there.
Oh, and this depends on the VM-only branch, so that has to be merged before :)
Another thing to check: should the interner be in its own module?
3 years ago
|
|
|
version "12.2.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/globby/-/globby-12.2.0.tgz#2ab8046b4fba4ff6eede835b29f678f90e3d3c22"
|
|
|
|
integrity sha512-wiSuFQLZ+urS9x2gGPl1H5drc5twabmm4m2gTR27XDFyjUHJUNsS8o/2aKyIF6IoBaR630atdher0XJ5g6OMmA==
|
|
|
|
dependencies:
|
|
|
|
array-union "^3.0.1"
|
|
|
|
dir-glob "^3.0.1"
|
|
|
|
fast-glob "^3.2.7"
|
Lexer string interning (#1758)
This Pull Request is part of #279.
It adds a string interner to Boa, which allows many types to not contain heap-allocated strings, and just contain a `NonZeroUsize` instead. This can move types to the stack (hopefully I'll be able to move `Token`, for example, maybe some `Node` types too.
Note that the internet is for now only available in the lexer. Next steps (in this PR or future ones) would include also using interning in the parser, and finally in execution. The idea is that strings should be represented with a `Sym` until they are displayed.
Talking about display. I have changed the `ParseError` type in order to not contain anything that could contain a `Sym` (basically tokens), which might be a bit faster, but what is important is that we don't depend on the interner when displaying errors.
The issue I have now is in order to display tokens. This requires the interner if we want to know identifiers, for example. The issue here is that Rust doesn't allow using a `fmt::Formatter` (only in nightly), which is making my head hurt. Maybe someone of you can find a better way of doing this.
Then, about `cursor.expect()`, this is the only place where we don't have the expected token type as a static string, so it's failing to compile. We have the option of changing the type definition of `ParseError` to contain an owned string, but maybe we can avoid this by having a `&'static str` come from a `TokenKind` with the default values, such as "identifier" for an identifier. I wanted for you to think about it and maybe we can just add that and avoid allocations there.
Oh, and this depends on the VM-only branch, so that has to be merged before :)
Another thing to check: should the interner be in its own module?
3 years ago
|
|
|
ignore "^5.1.9"
|
|
|
|
merge2 "^1.4.1"
|
|
|
|
slash "^4.0.0"
|
|
|
|
|
|
|
|
globby@^6.1.0:
|
|
|
|
version "6.1.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c"
|
|
|
|
integrity sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=
|
|
|
|
dependencies:
|
|
|
|
array-union "^1.0.1"
|
|
|
|
glob "^7.0.3"
|
|
|
|
object-assign "^4.0.1"
|
|
|
|
pify "^2.0.0"
|
|
|
|
pinkie-promise "^2.0.0"
|
|
|
|
|
|
|
|
graceful-fs@^4.1.2, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9:
|
|
|
|
version "4.2.9"
|
|
|
|
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.9.tgz#041b05df45755e587a24942279b9d113146e1c96"
|
|
|
|
integrity sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==
|
|
|
|
|
|
|
|
handle-thing@^2.0.0:
|
|
|
|
version "2.0.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e"
|
|
|
|
integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==
|
|
|
|
|
|
|
|
has-flag@^3.0.0:
|
|
|
|
version "3.0.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
|
|
|
|
integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0=
|
|
|
|
|
|
|
|
has-flag@^4.0.0:
|
|
|
|
version "4.0.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
|
|
|
|
integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
|
|
|
|
|
|
|
|
has-symbols@^1.0.1, has-symbols@^1.0.2:
|
|
|
|
version "1.0.2"
|
|
|
|
resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423"
|
|
|
|
integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==
|
|
|
|
|
|
|
|
has-tostringtag@^1.0.0:
|
|
|
|
version "1.0.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25"
|
|
|
|
integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==
|
|
|
|
dependencies:
|
|
|
|
has-symbols "^1.0.2"
|
|
|
|
|
|
|
|
has@^1.0.3:
|
|
|
|
version "1.0.3"
|
|
|
|
resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
|
|
|
|
integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
|
|
|
|
dependencies:
|
|
|
|
function-bind "^1.1.1"
|
|
|
|
|
|
|
|
he@^1.2.0:
|
|
|
|
version "1.2.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f"
|
|
|
|
integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==
|
|
|
|
|
|
|
|
hpack.js@^2.1.6:
|
|
|
|
version "2.1.6"
|
|
|
|
resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2"
|
|
|
|
integrity sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=
|
|
|
|
dependencies:
|
|
|
|
inherits "^2.0.1"
|
|
|
|
obuf "^1.0.0"
|
|
|
|
readable-stream "^2.0.1"
|
|
|
|
wbuf "^1.1.0"
|
|
|
|
|
|
|
|
html-entities@^2.3.2:
|
|
|
|
version "2.3.2"
|
|
|
|
resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.3.2.tgz#760b404685cb1d794e4f4b744332e3b00dcfe488"
|
|
|
|
integrity sha512-c3Ab/url5ksaT0WyleslpBEthOzWhrjQbg75y7XUsfSzi3Dgzt0l8w5e7DylRn15MTlMMD58dTfzddNS2kcAjQ==
|
|
|
|
|
|
|
|
html-minifier-terser@^6.0.2:
|
|
|
|
version "6.1.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#bfc818934cc07918f6b3669f5774ecdfd48f32ab"
|
|
|
|
integrity sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==
|
|
|
|
dependencies:
|
|
|
|
camel-case "^4.1.2"
|
|
|
|
clean-css "^5.2.2"
|
|
|
|
commander "^8.3.0"
|
|
|
|
he "^1.2.0"
|
|
|
|
param-case "^3.0.4"
|
|
|
|
relateurl "^0.2.7"
|
|
|
|
terser "^5.10.0"
|
|
|
|
|
|
|
|
html-webpack-plugin@^5.5.0:
|
|
|
|
version "5.5.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-5.5.0.tgz#c3911936f57681c1f9f4d8b68c158cd9dfe52f50"
|
|
|
|
integrity sha512-sy88PC2cRTVxvETRgUHFrL4No3UxvcH8G1NepGhqaTT+GXN2kTamqasot0inS5hXeg1cMbFDt27zzo9p35lZVw==
|
|
|
|
dependencies:
|
|
|
|
"@types/html-minifier-terser" "^6.0.0"
|
|
|
|
html-minifier-terser "^6.0.2"
|
|
|
|
lodash "^4.17.21"
|
|
|
|
pretty-error "^4.0.0"
|
|
|
|
tapable "^2.0.0"
|
|
|
|
|
|
|
|
htmlparser2@^6.1.0:
|
|
|
|
version "6.1.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-6.1.0.tgz#c4d762b6c3371a05dbe65e94ae43a9f845fb8fb7"
|
|
|
|
integrity sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==
|
|
|
|
dependencies:
|
|
|
|
domelementtype "^2.0.1"
|
|
|
|
domhandler "^4.0.0"
|
|
|
|
domutils "^2.5.2"
|
|
|
|
entities "^2.0.0"
|
|
|
|
|
|
|
|
http-deceiver@^1.2.7:
|
|
|
|
version "1.2.7"
|
|
|
|
resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87"
|
|
|
|
integrity sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=
|
|
|
|
|
|
|
|
http-errors@1.8.1:
|
|
|
|
version "1.8.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.8.1.tgz#7c3f28577cbc8a207388455dbd62295ed07bd68c"
|
|
|
|
integrity sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==
|
|
|
|
dependencies:
|
|
|
|
depd "~1.1.2"
|
|
|
|
inherits "2.0.4"
|
|
|
|
setprototypeof "1.2.0"
|
|
|
|
statuses ">= 1.5.0 < 2"
|
|
|
|
toidentifier "1.0.1"
|
|
|
|
|
|
|
|
http-errors@~1.6.2:
|
|
|
|
version "1.6.3"
|
|
|
|
resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d"
|
|
|
|
integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=
|
|
|
|
dependencies:
|
|
|
|
depd "~1.1.2"
|
|
|
|
inherits "2.0.3"
|
|
|
|
setprototypeof "1.1.0"
|
|
|
|
statuses ">= 1.4.0 < 2"
|
|
|
|
|
|
|
|
http-parser-js@>=0.5.1:
|
|
|
|
version "0.5.5"
|
|
|
|
resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.5.tgz#d7c30d5d3c90d865b4a2e870181f9d6f22ac7ac5"
|
|
|
|
integrity sha512-x+JVEkO2PoM8qqpbPbOL3cqHPwerep7OwzK7Ay+sMQjKzaKCqWvjoXm5tqMP9tXWWTnTzAjIhXg+J99XYuPhPA==
|
|
|
|
|
|
|
|
http-proxy-middleware@^2.0.0:
|
|
|
|
version "2.0.2"
|
|
|
|
resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-2.0.2.tgz#94d7593790aad6b3de48164f13792262f656c332"
|
|
|
|
integrity sha512-XtmDN5w+vdFTBZaYhdJAbMqn0DP/EhkUaAeo963mojwpKMMbw6nivtFKw07D7DDOH745L5k0VL0P8KRYNEVF/g==
|
|
|
|
dependencies:
|
|
|
|
"@types/http-proxy" "^1.17.8"
|
|
|
|
http-proxy "^1.18.1"
|
|
|
|
is-glob "^4.0.1"
|
|
|
|
is-plain-obj "^3.0.0"
|
|
|
|
micromatch "^4.0.2"
|
|
|
|
|
|
|
|
http-proxy@^1.18.1:
|
|
|
|
version "1.18.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549"
|
|
|
|
integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==
|
|
|
|
dependencies:
|
|
|
|
eventemitter3 "^4.0.0"
|
|
|
|
follow-redirects "^1.0.0"
|
|
|
|
requires-port "^1.0.0"
|
|
|
|
|
|
|
|
human-signals@^2.1.0:
|
|
|
|
version "2.1.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0"
|
|
|
|
integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==
|
|
|
|
|
|
|
|
iconv-lite@0.4.24:
|
|
|
|
version "0.4.24"
|
|
|
|
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
|
|
|
|
integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
|
|
|
|
dependencies:
|
|
|
|
safer-buffer ">= 2.1.2 < 3"
|
|
|
|
|
|
|
|
icss-utils@^5.0.0, icss-utils@^5.1.0:
|
|
|
|
version "5.1.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae"
|
|
|
|
integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==
|
|
|
|
|
Lexer string interning (#1758)
This Pull Request is part of #279.
It adds a string interner to Boa, which allows many types to not contain heap-allocated strings, and just contain a `NonZeroUsize` instead. This can move types to the stack (hopefully I'll be able to move `Token`, for example, maybe some `Node` types too.
Note that the internet is for now only available in the lexer. Next steps (in this PR or future ones) would include also using interning in the parser, and finally in execution. The idea is that strings should be represented with a `Sym` until they are displayed.
Talking about display. I have changed the `ParseError` type in order to not contain anything that could contain a `Sym` (basically tokens), which might be a bit faster, but what is important is that we don't depend on the interner when displaying errors.
The issue I have now is in order to display tokens. This requires the interner if we want to know identifiers, for example. The issue here is that Rust doesn't allow using a `fmt::Formatter` (only in nightly), which is making my head hurt. Maybe someone of you can find a better way of doing this.
Then, about `cursor.expect()`, this is the only place where we don't have the expected token type as a static string, so it's failing to compile. We have the option of changing the type definition of `ParseError` to contain an owned string, but maybe we can avoid this by having a `&'static str` come from a `TokenKind` with the default values, such as "identifier" for an identifier. I wanted for you to think about it and maybe we can just add that and avoid allocations there.
Oh, and this depends on the VM-only branch, so that has to be merged before :)
Another thing to check: should the interner be in its own module?
3 years ago
|
|
|
ignore@^5.1.9, ignore@^5.2.0:
|
|
|
|
version "5.2.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a"
|
|
|
|
integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==
|
|
|
|
|
|
|
|
import-local@^3.0.2:
|
Lexer string interning (#1758)
This Pull Request is part of #279.
It adds a string interner to Boa, which allows many types to not contain heap-allocated strings, and just contain a `NonZeroUsize` instead. This can move types to the stack (hopefully I'll be able to move `Token`, for example, maybe some `Node` types too.
Note that the internet is for now only available in the lexer. Next steps (in this PR or future ones) would include also using interning in the parser, and finally in execution. The idea is that strings should be represented with a `Sym` until they are displayed.
Talking about display. I have changed the `ParseError` type in order to not contain anything that could contain a `Sym` (basically tokens), which might be a bit faster, but what is important is that we don't depend on the interner when displaying errors.
The issue I have now is in order to display tokens. This requires the interner if we want to know identifiers, for example. The issue here is that Rust doesn't allow using a `fmt::Formatter` (only in nightly), which is making my head hurt. Maybe someone of you can find a better way of doing this.
Then, about `cursor.expect()`, this is the only place where we don't have the expected token type as a static string, so it's failing to compile. We have the option of changing the type definition of `ParseError` to contain an owned string, but maybe we can avoid this by having a `&'static str` come from a `TokenKind` with the default values, such as "identifier" for an identifier. I wanted for you to think about it and maybe we can just add that and avoid allocations there.
Oh, and this depends on the VM-only branch, so that has to be merged before :)
Another thing to check: should the interner be in its own module?
3 years ago
|
|
|
version "3.1.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4"
|
|
|
|
integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==
|
|
|
|
dependencies:
|
|
|
|
pkg-dir "^4.2.0"
|
|
|
|
resolve-cwd "^3.0.0"
|
|
|
|
|
|
|
|
indent-string@^4.0.0:
|
|
|
|
version "4.0.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251"
|
|
|
|
integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==
|
|
|
|
|
|
|
|
inflight@^1.0.4:
|
|
|
|
version "1.0.6"
|
|
|
|
resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
|
|
|
|
integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
|
|
|
|
dependencies:
|
|
|
|
once "^1.3.0"
|
|
|
|
wrappy "1"
|
|
|
|
|
|
|
|
inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3:
|
|
|
|
version "2.0.4"
|
|
|
|
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
|
|
|
|
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
|
|
|
|
|
|
|
|
inherits@2.0.3:
|
|
|
|
version "2.0.3"
|
|
|
|
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
|
|
|
|
integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=
|
|
|
|
|
|
|
|
interpret@^2.2.0:
|
|
|
|
version "2.2.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/interpret/-/interpret-2.2.0.tgz#1a78a0b5965c40a5416d007ad6f50ad27c417df9"
|
|
|
|
integrity sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==
|
|
|
|
|
|
|
|
ip@^1.1.0:
|
|
|
|
version "1.1.5"
|
|
|
|
resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a"
|
|
|
|
integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=
|
|
|
|
|
|
|
|
ipaddr.js@1.9.1:
|
|
|
|
version "1.9.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3"
|
|
|
|
integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==
|
|
|
|
|
|
|
|
ipaddr.js@^2.0.1:
|
|
|
|
version "2.0.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.0.1.tgz#eca256a7a877e917aeb368b0a7497ddf42ef81c0"
|
|
|
|
integrity sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==
|
|
|
|
|
|
|
|
is-arguments@^1.0.4:
|
|
|
|
version "1.1.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b"
|
|
|
|
integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==
|
|
|
|
dependencies:
|
|
|
|
call-bind "^1.0.2"
|
|
|
|
has-tostringtag "^1.0.0"
|
|
|
|
|
|
|
|
is-binary-path@~2.1.0:
|
|
|
|
version "2.1.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09"
|
|
|
|
integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==
|
|
|
|
dependencies:
|
|
|
|
binary-extensions "^2.0.0"
|
|
|
|
|
|
|
|
is-core-module@^2.8.1:
|
Lexer string interning (#1758)
This Pull Request is part of #279.
It adds a string interner to Boa, which allows many types to not contain heap-allocated strings, and just contain a `NonZeroUsize` instead. This can move types to the stack (hopefully I'll be able to move `Token`, for example, maybe some `Node` types too.
Note that the internet is for now only available in the lexer. Next steps (in this PR or future ones) would include also using interning in the parser, and finally in execution. The idea is that strings should be represented with a `Sym` until they are displayed.
Talking about display. I have changed the `ParseError` type in order to not contain anything that could contain a `Sym` (basically tokens), which might be a bit faster, but what is important is that we don't depend on the interner when displaying errors.
The issue I have now is in order to display tokens. This requires the interner if we want to know identifiers, for example. The issue here is that Rust doesn't allow using a `fmt::Formatter` (only in nightly), which is making my head hurt. Maybe someone of you can find a better way of doing this.
Then, about `cursor.expect()`, this is the only place where we don't have the expected token type as a static string, so it's failing to compile. We have the option of changing the type definition of `ParseError` to contain an owned string, but maybe we can avoid this by having a `&'static str` come from a `TokenKind` with the default values, such as "identifier" for an identifier. I wanted for you to think about it and maybe we can just add that and avoid allocations there.
Oh, and this depends on the VM-only branch, so that has to be merged before :)
Another thing to check: should the interner be in its own module?
3 years ago
|
|
|
version "2.8.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.1.tgz#f59fdfca701d5879d0a6b100a40aa1560ce27211"
|
|
|
|
integrity sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==
|
|
|
|
dependencies:
|
|
|
|
has "^1.0.3"
|
|
|
|
|
|
|
|
is-date-object@^1.0.1:
|
|
|
|
version "1.0.5"
|
|
|
|
resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f"
|
|
|
|
integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==
|
|
|
|
dependencies:
|
|
|
|
has-tostringtag "^1.0.0"
|
|
|
|
|
|
|
|
is-docker@^2.0.0, is-docker@^2.1.1:
|
|
|
|
version "2.2.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa"
|
|
|
|
integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==
|
|
|
|
|
|
|
|
is-extglob@^2.1.1:
|
|
|
|
version "2.1.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
|
|
|
|
integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=
|
|
|
|
|
|
|
|
is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1:
|
|
|
|
version "4.0.3"
|
|
|
|
resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084"
|
|
|
|
integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
|
|
|
|
dependencies:
|
|
|
|
is-extglob "^2.1.1"
|
|
|
|
|
|
|
|
is-number@^7.0.0:
|
|
|
|
version "7.0.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
|
|
|
|
integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
|
|
|
|
|
|
|
|
is-path-cwd@^2.0.0, is-path-cwd@^2.2.0:
|
|
|
|
version "2.2.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb"
|
|
|
|
integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==
|
|
|
|
|
|
|
|
is-path-in-cwd@^2.0.0:
|
|
|
|
version "2.1.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz#bfe2dca26c69f397265a4009963602935a053acb"
|
|
|
|
integrity sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==
|
|
|
|
dependencies:
|
|
|
|
is-path-inside "^2.1.0"
|
|
|
|
|
|
|
|
is-path-inside@^2.1.0:
|
|
|
|
version "2.1.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-2.1.0.tgz#7c9810587d659a40d27bcdb4d5616eab059494b2"
|
|
|
|
integrity sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==
|
|
|
|
dependencies:
|
|
|
|
path-is-inside "^1.0.2"
|
|
|
|
|
|
|
|
is-path-inside@^3.0.2:
|
|
|
|
version "3.0.3"
|
|
|
|
resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283"
|
|
|
|
integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==
|
|
|
|
|
|
|
|
is-plain-obj@^3.0.0:
|
|
|
|
version "3.0.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz#af6f2ea14ac5a646183a5bbdb5baabbc156ad9d7"
|
|
|
|
integrity sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==
|
|
|
|
|
|
|
|
is-plain-object@^2.0.4:
|
|
|
|
version "2.0.4"
|
|
|
|
resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677"
|
|
|
|
integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==
|
|
|
|
dependencies:
|
|
|
|
isobject "^3.0.1"
|
|
|
|
|
|
|
|
is-regex@^1.0.4:
|
|
|
|
version "1.1.4"
|
|
|
|
resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958"
|
|
|
|
integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==
|
|
|
|
dependencies:
|
|
|
|
call-bind "^1.0.2"
|
|
|
|
has-tostringtag "^1.0.0"
|
|
|
|
|
|
|
|
is-stream@^2.0.0:
|
|
|
|
version "2.0.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077"
|
|
|
|
integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==
|
|
|
|
|
|
|
|
is-wsl@^2.2.0:
|
|
|
|
version "2.2.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271"
|
|
|
|
integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==
|
|
|
|
dependencies:
|
|
|
|
is-docker "^2.0.0"
|
|
|
|
|
|
|
|
isarray@~1.0.0:
|
|
|
|
version "1.0.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
|
|
|
|
integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
|
|
|
|
|
|
|
|
isexe@^2.0.0:
|
|
|
|
version "2.0.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
|
|
|
|
integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
|
|
|
|
|
|
|
|
isobject@^3.0.1:
|
|
|
|
version "3.0.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
|
|
|
|
integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8=
|
|
|
|
|
|
|
|
jest-worker@^27.4.1:
|
Lexer string interning (#1758)
This Pull Request is part of #279.
It adds a string interner to Boa, which allows many types to not contain heap-allocated strings, and just contain a `NonZeroUsize` instead. This can move types to the stack (hopefully I'll be able to move `Token`, for example, maybe some `Node` types too.
Note that the internet is for now only available in the lexer. Next steps (in this PR or future ones) would include also using interning in the parser, and finally in execution. The idea is that strings should be represented with a `Sym` until they are displayed.
Talking about display. I have changed the `ParseError` type in order to not contain anything that could contain a `Sym` (basically tokens), which might be a bit faster, but what is important is that we don't depend on the interner when displaying errors.
The issue I have now is in order to display tokens. This requires the interner if we want to know identifiers, for example. The issue here is that Rust doesn't allow using a `fmt::Formatter` (only in nightly), which is making my head hurt. Maybe someone of you can find a better way of doing this.
Then, about `cursor.expect()`, this is the only place where we don't have the expected token type as a static string, so it's failing to compile. We have the option of changing the type definition of `ParseError` to contain an owned string, but maybe we can avoid this by having a `&'static str` come from a `TokenKind` with the default values, such as "identifier" for an identifier. I wanted for you to think about it and maybe we can just add that and avoid allocations there.
Oh, and this depends on the VM-only branch, so that has to be merged before :)
Another thing to check: should the interner be in its own module?
3 years ago
|
|
|
version "27.4.6"
|
|
|
|
resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.4.6.tgz#5d2d93db419566cb680752ca0792780e71b3273e"
|
|
|
|
integrity sha512-gHWJF/6Xi5CTG5QCvROr6GcmpIqNYpDJyc8A1h/DyXqH1tD6SnRCM0d3U5msV31D2LB/U+E0M+W4oyvKV44oNw==
|
|
|
|
dependencies:
|
|
|
|
"@types/node" "*"
|
|
|
|
merge-stream "^2.0.0"
|
|
|
|
supports-color "^8.0.0"
|
|
|
|
|
|
|
|
json-parse-better-errors@^1.0.2:
|
|
|
|
version "1.0.2"
|
|
|
|
resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9"
|
|
|
|
integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==
|
|
|
|
|
|
|
|
json-schema-traverse@^0.4.1:
|
|
|
|
version "0.4.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
|
|
|
|
integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
|
|
|
|
|
|
|
|
json-schema-traverse@^1.0.0:
|
|
|
|
version "1.0.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2"
|
|
|
|
integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==
|
|
|
|
|
|
|
|
json5@^2.1.2:
|
|
|
|
version "2.2.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3"
|
|
|
|
integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==
|
|
|
|
dependencies:
|
|
|
|
minimist "^1.2.5"
|
|
|
|
|
|
|
|
kind-of@^6.0.2:
|
|
|
|
version "6.0.3"
|
|
|
|
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd"
|
|
|
|
integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==
|
|
|
|
|
|
|
|
loader-runner@^4.2.0:
|
|
|
|
version "4.2.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.2.0.tgz#d7022380d66d14c5fb1d496b89864ebcfd478384"
|
|
|
|
integrity sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==
|
|
|
|
|
|
|
|
loader-utils@^2.0.0:
|
|
|
|
version "2.0.2"
|
|
|
|
resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.2.tgz#d6e3b4fb81870721ae4e0868ab11dd638368c129"
|
|
|
|
integrity sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==
|
|
|
|
dependencies:
|
|
|
|
big.js "^5.2.2"
|
|
|
|
emojis-list "^3.0.0"
|
|
|
|
json5 "^2.1.2"
|
|
|
|
|
|
|
|
locate-path@^5.0.0:
|
|
|
|
version "5.0.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0"
|
|
|
|
integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==
|
|
|
|
dependencies:
|
|
|
|
p-locate "^4.1.0"
|
|
|
|
|
|
|
|
lodash@^4.17.14, lodash@^4.17.20, lodash@^4.17.21:
|
|
|
|
version "4.17.21"
|
|
|
|
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
|
|
|
|
integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
|
|
|
|
|
|
|
|
lower-case@^2.0.2:
|
|
|
|
version "2.0.2"
|
|
|
|
resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28"
|
|
|
|
integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==
|
|
|
|
dependencies:
|
|
|
|
tslib "^2.0.3"
|
|
|
|
|
|
|
|
lru-cache@^6.0.0:
|
|
|
|
version "6.0.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94"
|
|
|
|
integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==
|
|
|
|
dependencies:
|
|
|
|
yallist "^4.0.0"
|
|
|
|
|
|
|
|
media-typer@0.3.0:
|
|
|
|
version "0.3.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
|
|
|
|
integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=
|
|
|
|
|
|
|
|
memfs@^3.2.2:
|
Lexer string interning (#1758)
This Pull Request is part of #279.
It adds a string interner to Boa, which allows many types to not contain heap-allocated strings, and just contain a `NonZeroUsize` instead. This can move types to the stack (hopefully I'll be able to move `Token`, for example, maybe some `Node` types too.
Note that the internet is for now only available in the lexer. Next steps (in this PR or future ones) would include also using interning in the parser, and finally in execution. The idea is that strings should be represented with a `Sym` until they are displayed.
Talking about display. I have changed the `ParseError` type in order to not contain anything that could contain a `Sym` (basically tokens), which might be a bit faster, but what is important is that we don't depend on the interner when displaying errors.
The issue I have now is in order to display tokens. This requires the interner if we want to know identifiers, for example. The issue here is that Rust doesn't allow using a `fmt::Formatter` (only in nightly), which is making my head hurt. Maybe someone of you can find a better way of doing this.
Then, about `cursor.expect()`, this is the only place where we don't have the expected token type as a static string, so it's failing to compile. We have the option of changing the type definition of `ParseError` to contain an owned string, but maybe we can avoid this by having a `&'static str` come from a `TokenKind` with the default values, such as "identifier" for an identifier. I wanted for you to think about it and maybe we can just add that and avoid allocations there.
Oh, and this depends on the VM-only branch, so that has to be merged before :)
Another thing to check: should the interner be in its own module?
3 years ago
|
|
|
version "3.4.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.4.1.tgz#b78092f466a0dce054d63d39275b24c71d3f1305"
|
|
|
|
integrity sha512-1c9VPVvW5P7I85c35zAdEr1TD5+F11IToIHIlrVIcflfnzPkJa0ZoYEoEdYDP8KgPFoSZ/opDrUsAoZWym3mtw==
|
|
|
|
dependencies:
|
|
|
|
fs-monkey "1.0.3"
|
|
|
|
|
|
|
|
merge-descriptors@1.0.1:
|
|
|
|
version "1.0.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61"
|
|
|
|
integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=
|
|
|
|
|
|
|
|
merge-stream@^2.0.0:
|
|
|
|
version "2.0.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
|
|
|
|
integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==
|
|
|
|
|
|
|
|
merge2@^1.3.0, merge2@^1.4.1:
|
|
|
|
version "1.4.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
|
|
|
|
integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
|
|
|
|
|
|
|
|
methods@~1.1.2:
|
|
|
|
version "1.1.2"
|
|
|
|
resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
|
|
|
|
integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=
|
|
|
|
|
|
|
|
micromatch@^4.0.2, micromatch@^4.0.4:
|
|
|
|
version "4.0.4"
|
|
|
|
resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9"
|
|
|
|
integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==
|
|
|
|
dependencies:
|
|
|
|
braces "^3.0.1"
|
|
|
|
picomatch "^2.2.3"
|
|
|
|
|
|
|
|
mime-db@1.51.0, "mime-db@>= 1.43.0 < 2":
|
|
|
|
version "1.51.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.51.0.tgz#d9ff62451859b18342d960850dc3cfb77e63fb0c"
|
|
|
|
integrity sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==
|
|
|
|
|
|
|
|
mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.17, mime-types@~2.1.24:
|
|
|
|
version "2.1.34"
|
|
|
|
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.34.tgz#5a712f9ec1503511a945803640fafe09d3793c24"
|
|
|
|
integrity sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==
|
|
|
|
dependencies:
|
|
|
|
mime-db "1.51.0"
|
|
|
|
|
|
|
|
mime@1.6.0:
|
|
|
|
version "1.6.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
|
|
|
|
integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==
|
|
|
|
|
|
|
|
mimic-fn@^2.1.0:
|
|
|
|
version "2.1.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
|
|
|
|
integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
|
|
|
|
|
|
|
|
minimalistic-assert@^1.0.0:
|
|
|
|
version "1.0.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7"
|
|
|
|
integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==
|
|
|
|
|
|
|
|
minimatch@^3.0.4:
|
|
|
|
version "3.0.4"
|
|
|
|
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
|
|
|
|
integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
|
|
|
|
dependencies:
|
|
|
|
brace-expansion "^1.1.7"
|
|
|
|
|
|
|
|
minimist@^1.2.5:
|
|
|
|
version "1.2.5"
|
|
|
|
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
|
|
|
|
integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
|
|
|
|
|
|
|
|
mkdirp@^0.5.5:
|
|
|
|
version "0.5.5"
|
|
|
|
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def"
|
|
|
|
integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==
|
|
|
|
dependencies:
|
|
|
|
minimist "^1.2.5"
|
|
|
|
|
|
|
|
monaco-editor@^0.31.1:
|
|
|
|
version "0.31.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/monaco-editor/-/monaco-editor-0.31.1.tgz#67f597b3e45679d1f551237e12a3a42c4438b97b"
|
|
|
|
integrity sha512-FYPwxGZAeP6mRRyrr5XTGHD9gRXVjy7GUzF4IPChnyt3fS5WrNxIkS8DNujWf6EQy0Zlzpxw8oTVE+mWI2/D1Q==
|
|
|
|
|
|
|
|
ms@2.0.0:
|
|
|
|
version "2.0.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
|
|
|
|
integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=
|
|
|
|
|
|
|
|
ms@2.1.2:
|
|
|
|
version "2.1.2"
|
|
|
|
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
|
|
|
|
integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
|
|
|
|
|
|
|
|
ms@2.1.3, ms@^2.1.1:
|
|
|
|
version "2.1.3"
|
|
|
|
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
|
|
|
|
integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
|
|
|
|
|
|
|
|
multicast-dns-service-types@^1.1.0:
|
|
|
|
version "1.1.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901"
|
|
|
|
integrity sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=
|
|
|
|
|
|
|
|
multicast-dns@^6.0.1:
|
|
|
|
version "6.2.3"
|
|
|
|
resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.2.3.tgz#a0ec7bd9055c4282f790c3c82f4e28db3b31b229"
|
|
|
|
integrity sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==
|
|
|
|
dependencies:
|
|
|
|
dns-packet "^1.3.1"
|
|
|
|
thunky "^1.0.2"
|
|
|
|
|
|
|
|
nanoid@^3.1.30:
|
Lexer string interning (#1758)
This Pull Request is part of #279.
It adds a string interner to Boa, which allows many types to not contain heap-allocated strings, and just contain a `NonZeroUsize` instead. This can move types to the stack (hopefully I'll be able to move `Token`, for example, maybe some `Node` types too.
Note that the internet is for now only available in the lexer. Next steps (in this PR or future ones) would include also using interning in the parser, and finally in execution. The idea is that strings should be represented with a `Sym` until they are displayed.
Talking about display. I have changed the `ParseError` type in order to not contain anything that could contain a `Sym` (basically tokens), which might be a bit faster, but what is important is that we don't depend on the interner when displaying errors.
The issue I have now is in order to display tokens. This requires the interner if we want to know identifiers, for example. The issue here is that Rust doesn't allow using a `fmt::Formatter` (only in nightly), which is making my head hurt. Maybe someone of you can find a better way of doing this.
Then, about `cursor.expect()`, this is the only place where we don't have the expected token type as a static string, so it's failing to compile. We have the option of changing the type definition of `ParseError` to contain an owned string, but maybe we can avoid this by having a `&'static str` come from a `TokenKind` with the default values, such as "identifier" for an identifier. I wanted for you to think about it and maybe we can just add that and avoid allocations there.
Oh, and this depends on the VM-only branch, so that has to be merged before :)
Another thing to check: should the interner be in its own module?
3 years ago
|
|
|
version "3.2.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.2.0.tgz#62667522da6673971cca916a6d3eff3f415ff80c"
|
|
|
|
integrity sha512-fmsZYa9lpn69Ad5eDn7FMcnnSR+8R34W9qJEijxYhTbfOWzr22n1QxCMzXLK+ODyW2973V3Fux959iQoUxzUIA==
|
|
|
|
|
|
|
|
negotiator@0.6.2:
|
|
|
|
version "0.6.2"
|
|
|
|
resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb"
|
|
|
|
integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==
|
|
|
|
|
|
|
|
neo-async@^2.6.2:
|
|
|
|
version "2.6.2"
|
|
|
|
resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f"
|
|
|
|
integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==
|
|
|
|
|
|
|
|
no-case@^3.0.4:
|
|
|
|
version "3.0.4"
|
|
|
|
resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d"
|
|
|
|
integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==
|
|
|
|
dependencies:
|
|
|
|
lower-case "^2.0.2"
|
|
|
|
tslib "^2.0.3"
|
|
|
|
|
|
|
|
node-forge@^1.2.0:
|
|
|
|
version "1.2.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.2.1.tgz#82794919071ef2eb5c509293325cec8afd0fd53c"
|
|
|
|
integrity sha512-Fcvtbb+zBcZXbTTVwqGA5W+MKBj56UjVRevvchv5XrcyXbmNdesfZL37nlcWOfpgHhgmxApw3tQbTr4CqNmX4w==
|
|
|
|
|
|
|
|
node-releases@^2.0.1:
|
|
|
|
version "2.0.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.1.tgz#3d1d395f204f1f2f29a54358b9fb678765ad2fc5"
|
|
|
|
integrity sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==
|
|
|
|
|
|
|
|
normalize-path@^3.0.0, normalize-path@~3.0.0:
|
|
|
|
version "3.0.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
|
|
|
|
integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
|
|
|
|
|
|
|
|
npm-run-path@^4.0.1:
|
|
|
|
version "4.0.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea"
|
|
|
|
integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==
|
|
|
|
dependencies:
|
|
|
|
path-key "^3.0.0"
|
|
|
|
|
|
|
|
nth-check@^2.0.1:
|
|
|
|
version "2.0.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.0.1.tgz#2efe162f5c3da06a28959fbd3db75dbeea9f0fc2"
|
|
|
|
integrity sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==
|
|
|
|
dependencies:
|
|
|
|
boolbase "^1.0.0"
|
|
|
|
|
|
|
|
object-assign@^4.0.1:
|
|
|
|
version "4.1.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
|
|
|
|
integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=
|
|
|
|
|
|
|
|
object-is@^1.0.1:
|
|
|
|
version "1.1.5"
|
|
|
|
resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac"
|
|
|
|
integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==
|
|
|
|
dependencies:
|
|
|
|
call-bind "^1.0.2"
|
|
|
|
define-properties "^1.1.3"
|
|
|
|
|
|
|
|
object-keys@^1.0.12, object-keys@^1.1.1:
|
|
|
|
version "1.1.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
|
|
|
|
integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
|
|
|
|
|
|
|
|
obuf@^1.0.0, obuf@^1.1.2:
|
|
|
|
version "1.1.2"
|
|
|
|
resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e"
|
|
|
|
integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==
|
|
|
|
|
|
|
|
on-finished@~2.3.0:
|
|
|
|
version "2.3.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947"
|
|
|
|
integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=
|
|
|
|
dependencies:
|
|
|
|
ee-first "1.1.1"
|
|
|
|
|
|
|
|
on-headers@~1.0.2:
|
|
|
|
version "1.0.2"
|
|
|
|
resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f"
|
|
|
|
integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==
|
|
|
|
|
|
|
|
once@^1.3.0:
|
|
|
|
version "1.4.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
|
|
|
|
integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
|
|
|
|
dependencies:
|
|
|
|
wrappy "1"
|
|
|
|
|
|
|
|
onetime@^5.1.2:
|
|
|
|
version "5.1.2"
|
|
|
|
resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e"
|
|
|
|
integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==
|
|
|
|
dependencies:
|
|
|
|
mimic-fn "^2.1.0"
|
|
|
|
|
|
|
|
open@^8.0.9:
|
|
|
|
version "8.4.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/open/-/open-8.4.0.tgz#345321ae18f8138f82565a910fdc6b39e8c244f8"
|
|
|
|
integrity sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==
|
|
|
|
dependencies:
|
|
|
|
define-lazy-prop "^2.0.0"
|
|
|
|
is-docker "^2.1.1"
|
|
|
|
is-wsl "^2.2.0"
|
|
|
|
|
|
|
|
p-limit@^2.2.0:
|
|
|
|
version "2.3.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1"
|
|
|
|
integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==
|
|
|
|
dependencies:
|
|
|
|
p-try "^2.0.0"
|
|
|
|
|
|
|
|
p-locate@^4.1.0:
|
|
|
|
version "4.1.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07"
|
|
|
|
integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==
|
|
|
|
dependencies:
|
|
|
|
p-limit "^2.2.0"
|
|
|
|
|
|
|
|
p-map@^2.0.0:
|
|
|
|
version "2.1.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175"
|
|
|
|
integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==
|
|
|
|
|
|
|
|
p-map@^4.0.0:
|
|
|
|
version "4.0.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b"
|
|
|
|
integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==
|
|
|
|
dependencies:
|
|
|
|
aggregate-error "^3.0.0"
|
|
|
|
|
|
|
|
p-retry@^4.5.0:
|
|
|
|
version "4.6.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-4.6.1.tgz#8fcddd5cdf7a67a0911a9cf2ef0e5df7f602316c"
|
|
|
|
integrity sha512-e2xXGNhZOZ0lfgR9kL34iGlU8N/KO0xZnQxVEwdeOvpqNDQfdnxIYizvWtK8RglUa3bGqI8g0R/BdfzLMxRkiA==
|
|
|
|
dependencies:
|
|
|
|
"@types/retry" "^0.12.0"
|
|
|
|
retry "^0.13.1"
|
|
|
|
|
|
|
|
p-try@^2.0.0:
|
|
|
|
version "2.2.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
|
|
|
|
integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
|
|
|
|
|
|
|
|
param-case@^3.0.4:
|
|
|
|
version "3.0.4"
|
|
|
|
resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5"
|
|
|
|
integrity sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==
|
|
|
|
dependencies:
|
|
|
|
dot-case "^3.0.4"
|
|
|
|
tslib "^2.0.3"
|
|
|
|
|
|
|
|
parseurl@~1.3.2, parseurl@~1.3.3:
|
|
|
|
version "1.3.3"
|
|
|
|
resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4"
|
|
|
|
integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==
|
|
|
|
|
|
|
|
pascal-case@^3.1.2:
|
|
|
|
version "3.1.2"
|
|
|
|
resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.2.tgz#b48e0ef2b98e205e7c1dae747d0b1508237660eb"
|
|
|
|
integrity sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==
|
|
|
|
dependencies:
|
|
|
|
no-case "^3.0.4"
|
|
|
|
tslib "^2.0.3"
|
|
|
|
|
|
|
|
path-exists@^4.0.0:
|
|
|
|
version "4.0.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3"
|
|
|
|
integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==
|
|
|
|
|
|
|
|
path-is-absolute@^1.0.0:
|
|
|
|
version "1.0.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
|
|
|
|
integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
|
|
|
|
|
|
|
|
path-is-inside@^1.0.2:
|
|
|
|
version "1.0.2"
|
|
|
|
resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53"
|
|
|
|
integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=
|
|
|
|
|
|
|
|
path-key@^3.0.0, path-key@^3.1.0:
|
|
|
|
version "3.1.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
|
|
|
|
integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
|
|
|
|
|
Lexer string interning (#1758)
This Pull Request is part of #279.
It adds a string interner to Boa, which allows many types to not contain heap-allocated strings, and just contain a `NonZeroUsize` instead. This can move types to the stack (hopefully I'll be able to move `Token`, for example, maybe some `Node` types too.
Note that the internet is for now only available in the lexer. Next steps (in this PR or future ones) would include also using interning in the parser, and finally in execution. The idea is that strings should be represented with a `Sym` until they are displayed.
Talking about display. I have changed the `ParseError` type in order to not contain anything that could contain a `Sym` (basically tokens), which might be a bit faster, but what is important is that we don't depend on the interner when displaying errors.
The issue I have now is in order to display tokens. This requires the interner if we want to know identifiers, for example. The issue here is that Rust doesn't allow using a `fmt::Formatter` (only in nightly), which is making my head hurt. Maybe someone of you can find a better way of doing this.
Then, about `cursor.expect()`, this is the only place where we don't have the expected token type as a static string, so it's failing to compile. We have the option of changing the type definition of `ParseError` to contain an owned string, but maybe we can avoid this by having a `&'static str` come from a `TokenKind` with the default values, such as "identifier" for an identifier. I wanted for you to think about it and maybe we can just add that and avoid allocations there.
Oh, and this depends on the VM-only branch, so that has to be merged before :)
Another thing to check: should the interner be in its own module?
3 years ago
|
|
|
path-parse@^1.0.7:
|
|
|
|
version "1.0.7"
|
|
|
|
resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
|
|
|
|
integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
|
|
|
|
|
|
|
|
path-to-regexp@0.1.7:
|
|
|
|
version "0.1.7"
|
|
|
|
resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c"
|
|
|
|
integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=
|
|
|
|
|
|
|
|
path-type@^4.0.0:
|
|
|
|
version "4.0.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
|
|
|
|
integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
|
|
|
|
|
|
|
|
picocolors@^1.0.0:
|
|
|
|
version "1.0.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
|
|
|
|
integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
|
|
|
|
|
|
|
|
picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3:
|
Lexer string interning (#1758)
This Pull Request is part of #279.
It adds a string interner to Boa, which allows many types to not contain heap-allocated strings, and just contain a `NonZeroUsize` instead. This can move types to the stack (hopefully I'll be able to move `Token`, for example, maybe some `Node` types too.
Note that the internet is for now only available in the lexer. Next steps (in this PR or future ones) would include also using interning in the parser, and finally in execution. The idea is that strings should be represented with a `Sym` until they are displayed.
Talking about display. I have changed the `ParseError` type in order to not contain anything that could contain a `Sym` (basically tokens), which might be a bit faster, but what is important is that we don't depend on the interner when displaying errors.
The issue I have now is in order to display tokens. This requires the interner if we want to know identifiers, for example. The issue here is that Rust doesn't allow using a `fmt::Formatter` (only in nightly), which is making my head hurt. Maybe someone of you can find a better way of doing this.
Then, about `cursor.expect()`, this is the only place where we don't have the expected token type as a static string, so it's failing to compile. We have the option of changing the type definition of `ParseError` to contain an owned string, but maybe we can avoid this by having a `&'static str` come from a `TokenKind` with the default values, such as "identifier" for an identifier. I wanted for you to think about it and maybe we can just add that and avoid allocations there.
Oh, and this depends on the VM-only branch, so that has to be merged before :)
Another thing to check: should the interner be in its own module?
3 years ago
|
|
|
version "2.3.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
|
|
|
|
integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
|
|
|
|
|
|
|
|
pify@^2.0.0:
|
|
|
|
version "2.3.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
|
|
|
|
integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw=
|
|
|
|
|
|
|
|
pify@^4.0.1:
|
|
|
|
version "4.0.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231"
|
|
|
|
integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==
|
|
|
|
|
|
|
|
pinkie-promise@^2.0.0:
|
|
|
|
version "2.0.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa"
|
|
|
|
integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o=
|
|
|
|
dependencies:
|
|
|
|
pinkie "^2.0.0"
|
|
|
|
|
|
|
|
pinkie@^2.0.0:
|
|
|
|
version "2.0.4"
|
|
|
|
resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870"
|
|
|
|
integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA=
|
|
|
|
|
|
|
|
pkg-dir@^4.2.0:
|
|
|
|
version "4.2.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3"
|
|
|
|
integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==
|
|
|
|
dependencies:
|
|
|
|
find-up "^4.0.0"
|
|
|
|
|
|
|
|
portfinder@^1.0.28:
|
|
|
|
version "1.0.28"
|
|
|
|
resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.28.tgz#67c4622852bd5374dd1dd900f779f53462fac778"
|
|
|
|
integrity sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==
|
|
|
|
dependencies:
|
|
|
|
async "^2.6.2"
|
|
|
|
debug "^3.1.1"
|
|
|
|
mkdirp "^0.5.5"
|
|
|
|
|
|
|
|
postcss-modules-extract-imports@^3.0.0:
|
|
|
|
version "3.0.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz#cda1f047c0ae80c97dbe28c3e76a43b88025741d"
|
|
|
|
integrity sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==
|
|
|
|
|
|
|
|
postcss-modules-local-by-default@^4.0.0:
|
|
|
|
version "4.0.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz#ebbb54fae1598eecfdf691a02b3ff3b390a5a51c"
|
|
|
|
integrity sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==
|
|
|
|
dependencies:
|
|
|
|
icss-utils "^5.0.0"
|
|
|
|
postcss-selector-parser "^6.0.2"
|
|
|
|
postcss-value-parser "^4.1.0"
|
|
|
|
|
|
|
|
postcss-modules-scope@^3.0.0:
|
|
|
|
version "3.0.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz#9ef3151456d3bbfa120ca44898dfca6f2fa01f06"
|
|
|
|
integrity sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==
|
|
|
|
dependencies:
|
|
|
|
postcss-selector-parser "^6.0.4"
|
|
|
|
|
|
|
|
postcss-modules-values@^4.0.0:
|
|
|
|
version "4.0.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz#d7c5e7e68c3bb3c9b27cbf48ca0bb3ffb4602c9c"
|
|
|
|
integrity sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==
|
|
|
|
dependencies:
|
|
|
|
icss-utils "^5.0.0"
|
|
|
|
|
|
|
|
postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4:
|
Lexer string interning (#1758)
This Pull Request is part of #279.
It adds a string interner to Boa, which allows many types to not contain heap-allocated strings, and just contain a `NonZeroUsize` instead. This can move types to the stack (hopefully I'll be able to move `Token`, for example, maybe some `Node` types too.
Note that the internet is for now only available in the lexer. Next steps (in this PR or future ones) would include also using interning in the parser, and finally in execution. The idea is that strings should be represented with a `Sym` until they are displayed.
Talking about display. I have changed the `ParseError` type in order to not contain anything that could contain a `Sym` (basically tokens), which might be a bit faster, but what is important is that we don't depend on the interner when displaying errors.
The issue I have now is in order to display tokens. This requires the interner if we want to know identifiers, for example. The issue here is that Rust doesn't allow using a `fmt::Formatter` (only in nightly), which is making my head hurt. Maybe someone of you can find a better way of doing this.
Then, about `cursor.expect()`, this is the only place where we don't have the expected token type as a static string, so it's failing to compile. We have the option of changing the type definition of `ParseError` to contain an owned string, but maybe we can avoid this by having a `&'static str` come from a `TokenKind` with the default values, such as "identifier" for an identifier. I wanted for you to think about it and maybe we can just add that and avoid allocations there.
Oh, and this depends on the VM-only branch, so that has to be merged before :)
Another thing to check: should the interner be in its own module?
3 years ago
|
|
|
version "6.0.9"
|
|
|
|
resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.9.tgz#ee71c3b9ff63d9cd130838876c13a2ec1a992b2f"
|
|
|
|
integrity sha512-UO3SgnZOVTwu4kyLR22UQ1xZh086RyNZppb7lLAKBFK8a32ttG5i87Y/P3+2bRSjZNyJ1B7hfFNo273tKe9YxQ==
|
|
|
|
dependencies:
|
|
|
|
cssesc "^3.0.0"
|
|
|
|
util-deprecate "^1.0.2"
|
|
|
|
|
|
|
|
postcss-value-parser@^4.1.0:
|
|
|
|
version "4.2.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514"
|
|
|
|
integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==
|
|
|
|
|
|
|
|
postcss@^8.2.15:
|
|
|
|
version "8.4.5"
|
|
|
|
resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.5.tgz#bae665764dfd4c6fcc24dc0fdf7e7aa00cc77f95"
|
|
|
|
integrity sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==
|
|
|
|
dependencies:
|
|
|
|
nanoid "^3.1.30"
|
|
|
|
picocolors "^1.0.0"
|
|
|
|
source-map-js "^1.0.1"
|
|
|
|
|
|
|
|
prettier@^2.5.1:
|
|
|
|
version "2.5.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.5.1.tgz#fff75fa9d519c54cf0fce328c1017d94546bc56a"
|
|
|
|
integrity sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==
|
|
|
|
|
|
|
|
pretty-error@^4.0.0:
|
|
|
|
version "4.0.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-4.0.0.tgz#90a703f46dd7234adb46d0f84823e9d1cb8f10d6"
|
|
|
|
integrity sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==
|
|
|
|
dependencies:
|
|
|
|
lodash "^4.17.20"
|
|
|
|
renderkid "^3.0.0"
|
|
|
|
|
|
|
|
process-nextick-args@~2.0.0:
|
|
|
|
version "2.0.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
|
|
|
|
integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
|
|
|
|
|
|
|
|
proxy-addr@~2.0.7:
|
|
|
|
version "2.0.7"
|
|
|
|
resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025"
|
|
|
|
integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==
|
|
|
|
dependencies:
|
|
|
|
forwarded "0.2.0"
|
|
|
|
ipaddr.js "1.9.1"
|
|
|
|
|
|
|
|
punycode@^2.1.0:
|
|
|
|
version "2.1.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
|
|
|
|
integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
|
|
|
|
|
|
|
|
qs@6.9.6:
|
|
|
|
version "6.9.6"
|
|
|
|
resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.6.tgz#26ed3c8243a431b2924aca84cc90471f35d5a0ee"
|
|
|
|
integrity sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==
|
|
|
|
|
|
|
|
queue-microtask@^1.2.2:
|
|
|
|
version "1.2.3"
|
|
|
|
resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
|
|
|
|
integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
|
|
|
|
|
|
|
|
randombytes@^2.1.0:
|
|
|
|
version "2.1.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a"
|
|
|
|
integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==
|
|
|
|
dependencies:
|
|
|
|
safe-buffer "^5.1.0"
|
|
|
|
|
|
|
|
range-parser@^1.2.1, range-parser@~1.2.1:
|
|
|
|
version "1.2.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031"
|
|
|
|
integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==
|
|
|
|
|
|
|
|
raw-body@2.4.2:
|
|
|
|
version "2.4.2"
|
|
|
|
resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.2.tgz#baf3e9c21eebced59dd6533ac872b71f7b61cb32"
|
|
|
|
integrity sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ==
|
|
|
|
dependencies:
|
|
|
|
bytes "3.1.1"
|
|
|
|
http-errors "1.8.1"
|
|
|
|
iconv-lite "0.4.24"
|
|
|
|
unpipe "1.0.0"
|
|
|
|
|
|
|
|
readable-stream@^2.0.1:
|
|
|
|
version "2.3.7"
|
|
|
|
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57"
|
|
|
|
integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==
|
|
|
|
dependencies:
|
|
|
|
core-util-is "~1.0.0"
|
|
|
|
inherits "~2.0.3"
|
|
|
|
isarray "~1.0.0"
|
|
|
|
process-nextick-args "~2.0.0"
|
|
|
|
safe-buffer "~5.1.1"
|
|
|
|
string_decoder "~1.1.1"
|
|
|
|
util-deprecate "~1.0.1"
|
|
|
|
|
|
|
|
readable-stream@^3.0.6:
|
|
|
|
version "3.6.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198"
|
|
|
|
integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==
|
|
|
|
dependencies:
|
|
|
|
inherits "^2.0.3"
|
|
|
|
string_decoder "^1.1.1"
|
|
|
|
util-deprecate "^1.0.1"
|
|
|
|
|
|
|
|
readdirp@~3.6.0:
|
|
|
|
version "3.6.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7"
|
|
|
|
integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==
|
|
|
|
dependencies:
|
|
|
|
picomatch "^2.2.1"
|
|
|
|
|
|
|
|
rechoir@^0.7.0:
|
|
|
|
version "0.7.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.7.1.tgz#9478a96a1ca135b5e88fc027f03ee92d6c645686"
|
|
|
|
integrity sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==
|
|
|
|
dependencies:
|
|
|
|
resolve "^1.9.0"
|
|
|
|
|
|
|
|
regexp.prototype.flags@^1.2.0:
|
Lexer string interning (#1758)
This Pull Request is part of #279.
It adds a string interner to Boa, which allows many types to not contain heap-allocated strings, and just contain a `NonZeroUsize` instead. This can move types to the stack (hopefully I'll be able to move `Token`, for example, maybe some `Node` types too.
Note that the internet is for now only available in the lexer. Next steps (in this PR or future ones) would include also using interning in the parser, and finally in execution. The idea is that strings should be represented with a `Sym` until they are displayed.
Talking about display. I have changed the `ParseError` type in order to not contain anything that could contain a `Sym` (basically tokens), which might be a bit faster, but what is important is that we don't depend on the interner when displaying errors.
The issue I have now is in order to display tokens. This requires the interner if we want to know identifiers, for example. The issue here is that Rust doesn't allow using a `fmt::Formatter` (only in nightly), which is making my head hurt. Maybe someone of you can find a better way of doing this.
Then, about `cursor.expect()`, this is the only place where we don't have the expected token type as a static string, so it's failing to compile. We have the option of changing the type definition of `ParseError` to contain an owned string, but maybe we can avoid this by having a `&'static str` come from a `TokenKind` with the default values, such as "identifier" for an identifier. I wanted for you to think about it and maybe we can just add that and avoid allocations there.
Oh, and this depends on the VM-only branch, so that has to be merged before :)
Another thing to check: should the interner be in its own module?
3 years ago
|
|
|
version "1.4.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.1.tgz#b3f4c0059af9e47eca9f3f660e51d81307e72307"
|
|
|
|
integrity sha512-pMR7hBVUUGI7PMA37m2ofIdQCsomVnas+Jn5UPGAHQ+/LlwKm/aTLJHdasmHRzlfeZwHiAOaRSo2rbBDm3nNUQ==
|
|
|
|
dependencies:
|
|
|
|
call-bind "^1.0.2"
|
|
|
|
define-properties "^1.1.3"
|
|
|
|
|
|
|
|
relateurl@^0.2.7:
|
|
|
|
version "0.2.7"
|
|
|
|
resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9"
|
|
|
|
integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=
|
|
|
|
|
|
|
|
renderkid@^3.0.0:
|
|
|
|
version "3.0.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-3.0.0.tgz#5fd823e4d6951d37358ecc9a58b1f06836b6268a"
|
|
|
|
integrity sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==
|
|
|
|
dependencies:
|
|
|
|
css-select "^4.1.3"
|
|
|
|
dom-converter "^0.2.0"
|
|
|
|
htmlparser2 "^6.1.0"
|
|
|
|
lodash "^4.17.21"
|
|
|
|
strip-ansi "^6.0.1"
|
|
|
|
|
|
|
|
require-from-string@^2.0.2:
|
|
|
|
version "2.0.2"
|
|
|
|
resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909"
|
|
|
|
integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==
|
|
|
|
|
|
|
|
requires-port@^1.0.0:
|
|
|
|
version "1.0.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff"
|
|
|
|
integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=
|
|
|
|
|
|
|
|
resolve-cwd@^3.0.0:
|
|
|
|
version "3.0.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d"
|
|
|
|
integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==
|
|
|
|
dependencies:
|
|
|
|
resolve-from "^5.0.0"
|
|
|
|
|
|
|
|
resolve-from@^5.0.0:
|
|
|
|
version "5.0.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69"
|
|
|
|
integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==
|
|
|
|
|
|
|
|
resolve@^1.9.0:
|
|
|
|
version "1.22.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.0.tgz#5e0b8c67c15df57a89bdbabe603a002f21731198"
|
|
|
|
integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==
|
|
|
|
dependencies:
|
|
|
|
is-core-module "^2.8.1"
|
Lexer string interning (#1758)
This Pull Request is part of #279.
It adds a string interner to Boa, which allows many types to not contain heap-allocated strings, and just contain a `NonZeroUsize` instead. This can move types to the stack (hopefully I'll be able to move `Token`, for example, maybe some `Node` types too.
Note that the internet is for now only available in the lexer. Next steps (in this PR or future ones) would include also using interning in the parser, and finally in execution. The idea is that strings should be represented with a `Sym` until they are displayed.
Talking about display. I have changed the `ParseError` type in order to not contain anything that could contain a `Sym` (basically tokens), which might be a bit faster, but what is important is that we don't depend on the interner when displaying errors.
The issue I have now is in order to display tokens. This requires the interner if we want to know identifiers, for example. The issue here is that Rust doesn't allow using a `fmt::Formatter` (only in nightly), which is making my head hurt. Maybe someone of you can find a better way of doing this.
Then, about `cursor.expect()`, this is the only place where we don't have the expected token type as a static string, so it's failing to compile. We have the option of changing the type definition of `ParseError` to contain an owned string, but maybe we can avoid this by having a `&'static str` come from a `TokenKind` with the default values, such as "identifier" for an identifier. I wanted for you to think about it and maybe we can just add that and avoid allocations there.
Oh, and this depends on the VM-only branch, so that has to be merged before :)
Another thing to check: should the interner be in its own module?
3 years ago
|
|
|
path-parse "^1.0.7"
|
|
|
|
supports-preserve-symlinks-flag "^1.0.0"
|
|
|
|
|
|
|
|
retry@^0.13.1:
|
|
|
|
version "0.13.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658"
|
|
|
|
integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==
|
|
|
|
|
|
|
|
reusify@^1.0.4:
|
|
|
|
version "1.0.4"
|
|
|
|
resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
|
|
|
|
integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
|
|
|
|
|
|
|
|
rimraf@^2.6.3:
|
|
|
|
version "2.7.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec"
|
|
|
|
integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==
|
|
|
|
dependencies:
|
|
|
|
glob "^7.1.3"
|
|
|
|
|
|
|
|
rimraf@^3.0.2:
|
|
|
|
version "3.0.2"
|
|
|
|
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"
|
|
|
|
integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
|
|
|
|
dependencies:
|
|
|
|
glob "^7.1.3"
|
|
|
|
|
|
|
|
run-parallel@^1.1.9:
|
|
|
|
version "1.2.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee"
|
|
|
|
integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==
|
|
|
|
dependencies:
|
|
|
|
queue-microtask "^1.2.2"
|
|
|
|
|
|
|
|
safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
|
|
|
|
version "5.1.2"
|
|
|
|
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
|
|
|
|
integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
|
|
|
|
|
|
|
|
safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@~5.2.0:
|
|
|
|
version "5.2.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
|
|
|
|
integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
|
|
|
|
|
|
|
|
"safer-buffer@>= 2.1.2 < 3":
|
|
|
|
version "2.1.2"
|
|
|
|
resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
|
|
|
|
integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
|
|
|
|
|
|
|
|
schema-utils@^3.0.0, schema-utils@^3.1.0, schema-utils@^3.1.1:
|
|
|
|
version "3.1.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.1.tgz#bc74c4b6b6995c1d88f76a8b77bea7219e0c8281"
|
|
|
|
integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==
|
|
|
|
dependencies:
|
|
|
|
"@types/json-schema" "^7.0.8"
|
|
|
|
ajv "^6.12.5"
|
|
|
|
ajv-keywords "^3.5.2"
|
|
|
|
|
|
|
|
schema-utils@^4.0.0:
|
|
|
|
version "4.0.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.0.0.tgz#60331e9e3ae78ec5d16353c467c34b3a0a1d3df7"
|
|
|
|
integrity sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==
|
|
|
|
dependencies:
|
|
|
|
"@types/json-schema" "^7.0.9"
|
|
|
|
ajv "^8.8.0"
|
|
|
|
ajv-formats "^2.1.1"
|
|
|
|
ajv-keywords "^5.0.0"
|
|
|
|
|
|
|
|
select-hose@^2.0.0:
|
|
|
|
version "2.0.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca"
|
|
|
|
integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=
|
|
|
|
|
|
|
|
selfsigned@^2.0.0:
|
|
|
|
version "2.0.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-2.0.0.tgz#e927cd5377cbb0a1075302cff8df1042cc2bce5b"
|
|
|
|
integrity sha512-cUdFiCbKoa1mZ6osuJs2uDHrs0k0oprsKveFiiaBKCNq3SYyb5gs2HxhQyDNLCmL51ZZThqi4YNDpCK6GOP1iQ==
|
|
|
|
dependencies:
|
|
|
|
node-forge "^1.2.0"
|
|
|
|
|
|
|
|
semver@^7.3.5:
|
|
|
|
version "7.3.5"
|
|
|
|
resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7"
|
|
|
|
integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==
|
|
|
|
dependencies:
|
|
|
|
lru-cache "^6.0.0"
|
|
|
|
|
|
|
|
send@0.17.2:
|
|
|
|
version "0.17.2"
|
|
|
|
resolved "https://registry.yarnpkg.com/send/-/send-0.17.2.tgz#926622f76601c41808012c8bf1688fe3906f7820"
|
|
|
|
integrity sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==
|
|
|
|
dependencies:
|
|
|
|
debug "2.6.9"
|
|
|
|
depd "~1.1.2"
|
|
|
|
destroy "~1.0.4"
|
|
|
|
encodeurl "~1.0.2"
|
|
|
|
escape-html "~1.0.3"
|
|
|
|
etag "~1.8.1"
|
|
|
|
fresh "0.5.2"
|
|
|
|
http-errors "1.8.1"
|
|
|
|
mime "1.6.0"
|
|
|
|
ms "2.1.3"
|
|
|
|
on-finished "~2.3.0"
|
|
|
|
range-parser "~1.2.1"
|
|
|
|
statuses "~1.5.0"
|
|
|
|
|
|
|
|
serialize-javascript@^6.0.0:
|
|
|
|
version "6.0.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8"
|
|
|
|
integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==
|
|
|
|
dependencies:
|
|
|
|
randombytes "^2.1.0"
|
|
|
|
|
|
|
|
serve-index@^1.9.1:
|
|
|
|
version "1.9.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239"
|
|
|
|
integrity sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=
|
|
|
|
dependencies:
|
|
|
|
accepts "~1.3.4"
|
|
|
|
batch "0.6.1"
|
|
|
|
debug "2.6.9"
|
|
|
|
escape-html "~1.0.3"
|
|
|
|
http-errors "~1.6.2"
|
|
|
|
mime-types "~2.1.17"
|
|
|
|
parseurl "~1.3.2"
|
|
|
|
|
|
|
|
serve-static@1.14.2:
|
|
|
|
version "1.14.2"
|
|
|
|
resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.2.tgz#722d6294b1d62626d41b43a013ece4598d292bfa"
|
|
|
|
integrity sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==
|
|
|
|
dependencies:
|
|
|
|
encodeurl "~1.0.2"
|
|
|
|
escape-html "~1.0.3"
|
|
|
|
parseurl "~1.3.3"
|
|
|
|
send "0.17.2"
|
|
|
|
|
|
|
|
setprototypeof@1.1.0:
|
|
|
|
version "1.1.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656"
|
|
|
|
integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==
|
|
|
|
|
|
|
|
setprototypeof@1.2.0:
|
|
|
|
version "1.2.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424"
|
|
|
|
integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==
|
|
|
|
|
|
|
|
shallow-clone@^3.0.0:
|
|
|
|
version "3.0.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3"
|
|
|
|
integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==
|
|
|
|
dependencies:
|
|
|
|
kind-of "^6.0.2"
|
|
|
|
|
|
|
|
shebang-command@^2.0.0:
|
|
|
|
version "2.0.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
|
|
|
|
integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==
|
|
|
|
dependencies:
|
|
|
|
shebang-regex "^3.0.0"
|
|
|
|
|
|
|
|
shebang-regex@^3.0.0:
|
|
|
|
version "3.0.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
|
|
|
|
integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
|
|
|
|
|
|
|
|
signal-exit@^3.0.3:
|
|
|
|
version "3.0.6"
|
|
|
|
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.6.tgz#24e630c4b0f03fea446a2bd299e62b4a6ca8d0af"
|
|
|
|
integrity sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==
|
|
|
|
|
|
|
|
slash@^3.0.0:
|
|
|
|
version "3.0.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
|
|
|
|
integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==
|
|
|
|
|
|
|
|
slash@^4.0.0:
|
|
|
|
version "4.0.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/slash/-/slash-4.0.0.tgz#2422372176c4c6c5addb5e2ada885af984b396a7"
|
|
|
|
integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==
|
|
|
|
|
|
|
|
sockjs@^0.3.21:
|
|
|
|
version "0.3.24"
|
|
|
|
resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.24.tgz#c9bc8995f33a111bea0395ec30aa3206bdb5ccce"
|
|
|
|
integrity sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==
|
|
|
|
dependencies:
|
|
|
|
faye-websocket "^0.11.3"
|
|
|
|
uuid "^8.3.2"
|
|
|
|
websocket-driver "^0.7.4"
|
|
|
|
|
|
|
|
source-map-js@^1.0.1:
|
Lexer string interning (#1758)
This Pull Request is part of #279.
It adds a string interner to Boa, which allows many types to not contain heap-allocated strings, and just contain a `NonZeroUsize` instead. This can move types to the stack (hopefully I'll be able to move `Token`, for example, maybe some `Node` types too.
Note that the internet is for now only available in the lexer. Next steps (in this PR or future ones) would include also using interning in the parser, and finally in execution. The idea is that strings should be represented with a `Sym` until they are displayed.
Talking about display. I have changed the `ParseError` type in order to not contain anything that could contain a `Sym` (basically tokens), which might be a bit faster, but what is important is that we don't depend on the interner when displaying errors.
The issue I have now is in order to display tokens. This requires the interner if we want to know identifiers, for example. The issue here is that Rust doesn't allow using a `fmt::Formatter` (only in nightly), which is making my head hurt. Maybe someone of you can find a better way of doing this.
Then, about `cursor.expect()`, this is the only place where we don't have the expected token type as a static string, so it's failing to compile. We have the option of changing the type definition of `ParseError` to contain an owned string, but maybe we can avoid this by having a `&'static str` come from a `TokenKind` with the default values, such as "identifier" for an identifier. I wanted for you to think about it and maybe we can just add that and avoid allocations there.
Oh, and this depends on the VM-only branch, so that has to be merged before :)
Another thing to check: should the interner be in its own module?
3 years ago
|
|
|
version "1.0.2"
|
|
|
|
resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c"
|
|
|
|
integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==
|
|
|
|
|
|
|
|
source-map-support@~0.5.20:
|
|
|
|
version "0.5.21"
|
|
|
|
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f"
|
|
|
|
integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==
|
|
|
|
dependencies:
|
|
|
|
buffer-from "^1.0.0"
|
|
|
|
source-map "^0.6.0"
|
|
|
|
|
|
|
|
source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0:
|
|
|
|
version "0.6.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
|
|
|
|
integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
|
|
|
|
|
|
|
|
source-map@~0.7.2:
|
|
|
|
version "0.7.3"
|
|
|
|
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383"
|
|
|
|
integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==
|
|
|
|
|
|
|
|
spdy-transport@^3.0.0:
|
|
|
|
version "3.0.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31"
|
|
|
|
integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==
|
|
|
|
dependencies:
|
|
|
|
debug "^4.1.0"
|
|
|
|
detect-node "^2.0.4"
|
|
|
|
hpack.js "^2.1.6"
|
|
|
|
obuf "^1.1.2"
|
|
|
|
readable-stream "^3.0.6"
|
|
|
|
wbuf "^1.7.3"
|
|
|
|
|
|
|
|
spdy@^4.0.2:
|
|
|
|
version "4.0.2"
|
|
|
|
resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.2.tgz#b74f466203a3eda452c02492b91fb9e84a27677b"
|
|
|
|
integrity sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==
|
|
|
|
dependencies:
|
|
|
|
debug "^4.1.0"
|
|
|
|
handle-thing "^2.0.0"
|
|
|
|
http-deceiver "^1.2.7"
|
|
|
|
select-hose "^2.0.0"
|
|
|
|
spdy-transport "^3.0.0"
|
|
|
|
|
|
|
|
"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@~1.5.0:
|
|
|
|
version "1.5.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c"
|
|
|
|
integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=
|
|
|
|
|
|
|
|
string_decoder@^1.1.1:
|
|
|
|
version "1.3.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e"
|
|
|
|
integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==
|
|
|
|
dependencies:
|
|
|
|
safe-buffer "~5.2.0"
|
|
|
|
|
|
|
|
string_decoder@~1.1.1:
|
|
|
|
version "1.1.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
|
|
|
|
integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
|
|
|
|
dependencies:
|
|
|
|
safe-buffer "~5.1.0"
|
|
|
|
|
|
|
|
strip-ansi@^6.0.1:
|
|
|
|
version "6.0.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
|
|
|
|
integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
|
|
|
|
dependencies:
|
|
|
|
ansi-regex "^5.0.1"
|
|
|
|
|
|
|
|
strip-ansi@^7.0.0:
|
|
|
|
version "7.0.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.0.1.tgz#61740a08ce36b61e50e65653f07060d000975fb2"
|
|
|
|
integrity sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==
|
|
|
|
dependencies:
|
|
|
|
ansi-regex "^6.0.1"
|
|
|
|
|
|
|
|
strip-final-newline@^2.0.0:
|
|
|
|
version "2.0.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad"
|
|
|
|
integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==
|
|
|
|
|
|
|
|
style-loader@^3.3.1:
|
|
|
|
version "3.3.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-3.3.1.tgz#057dfa6b3d4d7c7064462830f9113ed417d38575"
|
|
|
|
integrity sha512-GPcQ+LDJbrcxHORTRes6Jy2sfvK2kS6hpSfI/fXhPt+spVzxF6LJ1dHLN9zIGmVaaP044YKaIatFaufENRiDoQ==
|
|
|
|
|
|
|
|
supports-color@^5.3.0:
|
|
|
|
version "5.5.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
|
|
|
|
integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
|
|
|
|
dependencies:
|
|
|
|
has-flag "^3.0.0"
|
|
|
|
|
|
|
|
supports-color@^8.0.0:
|
|
|
|
version "8.1.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c"
|
|
|
|
integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==
|
|
|
|
dependencies:
|
|
|
|
has-flag "^4.0.0"
|
|
|
|
|
Lexer string interning (#1758)
This Pull Request is part of #279.
It adds a string interner to Boa, which allows many types to not contain heap-allocated strings, and just contain a `NonZeroUsize` instead. This can move types to the stack (hopefully I'll be able to move `Token`, for example, maybe some `Node` types too.
Note that the internet is for now only available in the lexer. Next steps (in this PR or future ones) would include also using interning in the parser, and finally in execution. The idea is that strings should be represented with a `Sym` until they are displayed.
Talking about display. I have changed the `ParseError` type in order to not contain anything that could contain a `Sym` (basically tokens), which might be a bit faster, but what is important is that we don't depend on the interner when displaying errors.
The issue I have now is in order to display tokens. This requires the interner if we want to know identifiers, for example. The issue here is that Rust doesn't allow using a `fmt::Formatter` (only in nightly), which is making my head hurt. Maybe someone of you can find a better way of doing this.
Then, about `cursor.expect()`, this is the only place where we don't have the expected token type as a static string, so it's failing to compile. We have the option of changing the type definition of `ParseError` to contain an owned string, but maybe we can avoid this by having a `&'static str` come from a `TokenKind` with the default values, such as "identifier" for an identifier. I wanted for you to think about it and maybe we can just add that and avoid allocations there.
Oh, and this depends on the VM-only branch, so that has to be merged before :)
Another thing to check: should the interner be in its own module?
3 years ago
|
|
|
supports-preserve-symlinks-flag@^1.0.0:
|
|
|
|
version "1.0.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
|
|
|
|
integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
|
|
|
|
|
|
|
|
tapable@^2.0.0, tapable@^2.1.1, tapable@^2.2.0:
|
|
|
|
version "2.2.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0"
|
|
|
|
integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==
|
|
|
|
|
|
|
|
terser-webpack-plugin@^5.1.3:
|
|
|
|
version "5.3.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.0.tgz#21641326486ecf91d8054161c816e464435bae9f"
|
|
|
|
integrity sha512-LPIisi3Ol4chwAaPP8toUJ3L4qCM1G0wao7L3qNv57Drezxj6+VEyySpPw4B1HSO2Eg/hDY/MNF5XihCAoqnsQ==
|
|
|
|
dependencies:
|
|
|
|
jest-worker "^27.4.1"
|
|
|
|
schema-utils "^3.1.1"
|
|
|
|
serialize-javascript "^6.0.0"
|
|
|
|
source-map "^0.6.1"
|
|
|
|
terser "^5.7.2"
|
|
|
|
|
|
|
|
terser@^5.10.0, terser@^5.7.2:
|
|
|
|
version "5.10.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/terser/-/terser-5.10.0.tgz#b86390809c0389105eb0a0b62397563096ddafcc"
|
|
|
|
integrity sha512-AMmF99DMfEDiRJfxfY5jj5wNH/bYO09cniSqhfoyxc8sFoYIgkJy86G04UoZU5VjlpnplVu0K6Tx6E9b5+DlHA==
|
|
|
|
dependencies:
|
|
|
|
commander "^2.20.0"
|
|
|
|
source-map "~0.7.2"
|
|
|
|
source-map-support "~0.5.20"
|
|
|
|
|
|
|
|
thunky@^1.0.2:
|
|
|
|
version "1.1.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d"
|
|
|
|
integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==
|
|
|
|
|
|
|
|
to-regex-range@^5.0.1:
|
|
|
|
version "5.0.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
|
|
|
|
integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
|
|
|
|
dependencies:
|
|
|
|
is-number "^7.0.0"
|
|
|
|
|
|
|
|
toidentifier@1.0.1:
|
|
|
|
version "1.0.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35"
|
|
|
|
integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==
|
|
|
|
|
|
|
|
tslib@^2.0.3:
|
|
|
|
version "2.3.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01"
|
|
|
|
integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==
|
|
|
|
|
|
|
|
type-is@~1.6.18:
|
|
|
|
version "1.6.18"
|
|
|
|
resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131"
|
|
|
|
integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==
|
|
|
|
dependencies:
|
|
|
|
media-typer "0.3.0"
|
|
|
|
mime-types "~2.1.24"
|
|
|
|
|
|
|
|
unpipe@1.0.0, unpipe@~1.0.0:
|
|
|
|
version "1.0.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
|
|
|
|
integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=
|
|
|
|
|
|
|
|
uri-js@^4.2.2:
|
|
|
|
version "4.4.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"
|
|
|
|
integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==
|
|
|
|
dependencies:
|
|
|
|
punycode "^2.1.0"
|
|
|
|
|
|
|
|
util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1:
|
|
|
|
version "1.0.2"
|
|
|
|
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
|
|
|
|
integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
|
|
|
|
|
|
|
|
utila@~0.4:
|
|
|
|
version "0.4.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c"
|
|
|
|
integrity sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=
|
|
|
|
|
|
|
|
utils-merge@1.0.1:
|
|
|
|
version "1.0.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
|
|
|
|
integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=
|
|
|
|
|
|
|
|
uuid@^8.3.2:
|
|
|
|
version "8.3.2"
|
|
|
|
resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2"
|
|
|
|
integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==
|
|
|
|
|
|
|
|
vary@~1.1.2:
|
|
|
|
version "1.1.2"
|
|
|
|
resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
|
|
|
|
integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=
|
|
|
|
|
|
|
|
watchpack@^2.1.1, watchpack@^2.3.1:
|
|
|
|
version "2.3.1"
|
|
|
|
resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.3.1.tgz#4200d9447b401156eeca7767ee610f8809bc9d25"
|
|
|
|
integrity sha512-x0t0JuydIo8qCNctdDrn1OzH/qDzk2+rdCOC3YzumZ42fiMqmQ7T3xQurykYMhYfHaPHTp4ZxAx2NfUo1K6QaA==
|
|
|
|
dependencies:
|
|
|
|
glob-to-regexp "^0.4.1"
|
|
|
|
graceful-fs "^4.1.2"
|
|
|
|
|
|
|
|
wbuf@^1.1.0, wbuf@^1.7.3:
|
|
|
|
version "1.7.3"
|
|
|
|
resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df"
|
|
|
|
integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==
|
|
|
|
dependencies:
|
|
|
|
minimalistic-assert "^1.0.0"
|
|
|
|
|
|
|
|
webpack-cli@^4.9.2:
|
|
|
|
version "4.9.2"
|
|
|
|
resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-4.9.2.tgz#77c1adaea020c3f9e2db8aad8ea78d235c83659d"
|
|
|
|
integrity sha512-m3/AACnBBzK/kMTcxWHcZFPrw/eQuY4Df1TxvIWfWM2x7mRqBQCqKEd96oCUa9jkapLBaFfRce33eGDb4Pr7YQ==
|
|
|
|
dependencies:
|
|
|
|
"@discoveryjs/json-ext" "^0.5.0"
|
|
|
|
"@webpack-cli/configtest" "^1.1.1"
|
|
|
|
"@webpack-cli/info" "^1.4.1"
|
|
|
|
"@webpack-cli/serve" "^1.6.1"
|
|
|
|
colorette "^2.0.14"
|
|
|
|
commander "^7.0.0"
|
|
|
|
execa "^5.0.0"
|
|
|
|
fastest-levenshtein "^1.0.12"
|
|
|
|
import-local "^3.0.2"
|
|
|
|
interpret "^2.2.0"
|
|
|
|
rechoir "^0.7.0"
|
|
|
|
webpack-merge "^5.7.3"
|
|
|
|
|
|
|
|
webpack-dev-middleware@^5.3.0:
|
|
|
|
version "5.3.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-5.3.0.tgz#8fc02dba6e72e1d373eca361623d84610f27be7c"
|
|
|
|
integrity sha512-MouJz+rXAm9B1OTOYaJnn6rtD/lWZPy2ufQCH3BPs8Rloh/Du6Jze4p7AeLYHkVi0giJnYLaSGDC7S+GM9arhg==
|
|
|
|
dependencies:
|
|
|
|
colorette "^2.0.10"
|
|
|
|
memfs "^3.2.2"
|
|
|
|
mime-types "^2.1.31"
|
|
|
|
range-parser "^1.2.1"
|
|
|
|
schema-utils "^4.0.0"
|
|
|
|
|
|
|
|
webpack-dev-server@^4.7.3:
|
|
|
|
version "4.7.3"
|
|
|
|
resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-4.7.3.tgz#4e995b141ff51fa499906eebc7906f6925d0beaa"
|
|
|
|
integrity sha512-mlxq2AsIw2ag016nixkzUkdyOE8ST2GTy34uKSABp1c4nhjZvH90D5ZRR+UOLSsG4Z3TFahAi72a3ymRtfRm+Q==
|
|
|
|
dependencies:
|
|
|
|
"@types/bonjour" "^3.5.9"
|
|
|
|
"@types/connect-history-api-fallback" "^1.3.5"
|
|
|
|
"@types/serve-index" "^1.9.1"
|
|
|
|
"@types/sockjs" "^0.3.33"
|
|
|
|
"@types/ws" "^8.2.2"
|
|
|
|
ansi-html-community "^0.0.8"
|
|
|
|
bonjour "^3.5.0"
|
Bump webpack-dev-server from 4.3.1 to 4.4.0 (#1694)
Bumps [webpack-dev-server](https://github.com/webpack/webpack-dev-server) from 4.3.1 to 4.4.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/webpack/webpack-dev-server/releases">webpack-dev-server's releases</a>.</em></p>
<blockquote>
<h2>v4.4.0</h2>
<h2><a href="https://github.com/webpack/webpack-dev-server/compare/v4.3.1...v4.4.0">4.4.0</a> (2021-10-27)</h2>
<h3>Features</h3>
<ul>
<li>added the <code>server</code> option, now you can pass server options, example <code>{ server: { type: 'http', options: { maxHeaderSize: 32768 } } }</code>, available options for <a href="https://nodejs.org/api/http.html#httpcreateserveroptions-requestlistener"><code>http</code></a> and <a href="https://nodejs.org/api/https.html#httpscreateserveroptions-requestlistener"><code>https</code></a>, note - for <code>http2</code> is used <a href="https://github.com/spdy-http2/node-spdy"><code>spdy</code></a>, options specified in the <code>server.options</code> option take precedence over <code>https</code>/<code>http2</code> options (<a href="https://github-redirect.dependabot.com/webpack/webpack-dev-server/issues/3940">#3940</a>) (<a href="https://github.com/webpack/webpack-dev-server/commit/a70a7ef025f07ec6be69cee0b3b5204c7e3a0c5b">a70a7ef</a>)</li>
<li>added the <code>client.reconnect</code> option (<a href="https://github-redirect.dependabot.com/webpack/webpack-dev-server/issues/3912">#3912</a>) (<a href="https://github.com/webpack/webpack-dev-server/commit/5edad76bb099713210b2a8c5c29d22371df7371e">5edad76</a>)</li>
<li>improve error handling within <code>startCallback</code> and <code>endCallback</code> (<a href="https://github-redirect.dependabot.com/webpack/webpack-dev-server/issues/3969">#3969</a>) (<a href="https://github.com/webpack/webpack-dev-server/commit/b0928acadccd2251a9eb165bfae0c63c84d0d745">b0928ac</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>schema for web socket server type (<a href="https://github-redirect.dependabot.com/webpack/webpack-dev-server/issues/3913">#3913</a>) (<a href="https://github.com/webpack/webpack-dev-server/commit/f6aa6f7979dae5a44ff4597b7338027c5aab869a">f6aa6f7</a>)</li>
<li>typo in SSL information log (<a href="https://github-redirect.dependabot.com/webpack/webpack-dev-server/issues/3939">#3939</a>) (<a href="https://github.com/webpack/webpack-dev-server/commit/4c6103ba9495a29c6e142373c8dad084a20b6bc8">4c6103b</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/webpack/webpack-dev-server/blob/master/CHANGELOG.md">webpack-dev-server's changelog</a>.</em></p>
<blockquote>
<h2><a href="https://github.com/webpack/webpack-dev-server/compare/v4.3.1...v4.4.0">4.4.0</a> (2021-10-27)</h2>
<h3>Features</h3>
<ul>
<li>added the <code>server</code> option, now you can pass server options, example <code>{ server: { type: 'http', options: { maxHeaderSize: 32768 } } }</code>, available options for <a href="https://nodejs.org/api/http.html#httpcreateserveroptions-requestlistener"><code>http</code></a> and <a href="https://nodejs.org/api/https.html#httpscreateserveroptions-requestlistener"><code>https</code></a>, note - for <code>http2</code> is used <a href="https://github.com/spdy-http2/node-spdy"><code>spdy</code></a>, options specified in the <code>server.options</code> option take precedence over <code>https</code>/<code>http2</code> options (<a href="https://github-redirect.dependabot.com/webpack/webpack-dev-server/issues/3940">#3940</a>) (<a href="https://github.com/webpack/webpack-dev-server/commit/a70a7ef025f07ec6be69cee0b3b5204c7e3a0c5b">a70a7ef</a>)</li>
<li>added the <code>client.reconnect</code> option (<a href="https://github-redirect.dependabot.com/webpack/webpack-dev-server/issues/3912">#3912</a>) (<a href="https://github.com/webpack/webpack-dev-server/commit/5edad76bb099713210b2a8c5c29d22371df7371e">5edad76</a>)</li>
<li>improve error handling within <code>startCallback</code> and <code>endCallback</code> (<a href="https://github-redirect.dependabot.com/webpack/webpack-dev-server/issues/3969">#3969</a>) (<a href="https://github.com/webpack/webpack-dev-server/commit/b0928acadccd2251a9eb165bfae0c63c84d0d745">b0928ac</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>schema for web socket server type (<a href="https://github-redirect.dependabot.com/webpack/webpack-dev-server/issues/3913">#3913</a>) (<a href="https://github.com/webpack/webpack-dev-server/commit/f6aa6f7979dae5a44ff4597b7338027c5aab869a">f6aa6f7</a>)</li>
<li>typo in SSL information log (<a href="https://github-redirect.dependabot.com/webpack/webpack-dev-server/issues/3939">#3939</a>) (<a href="https://github.com/webpack/webpack-dev-server/commit/4c6103ba9495a29c6e142373c8dad084a20b6bc8">4c6103b</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/webpack/webpack-dev-server/commit/4d51f5a115e492e9031eb304a67daff775b830df"><code>4d51f5a</code></a> chore(release): 4.4.0</li>
<li><a href="https://github.com/webpack/webpack-dev-server/commit/83229056f2811cdce256730e2961e7ee201c776c"><code>8322905</code></a> chore(deps): update (<a href="https://github-redirect.dependabot.com/webpack/webpack-dev-server/issues/3984">#3984</a>)</li>
<li><a href="https://github.com/webpack/webpack-dev-server/commit/50df17cf7fcfff4ea1f26a519ce95e5c78ee7845"><code>50df17c</code></a> chore(deps-dev): bump lint-staged from 11.2.4 to 11.2.6 (<a href="https://github-redirect.dependabot.com/webpack/webpack-dev-server/issues/3982">#3982</a>)</li>
<li><a href="https://github.com/webpack/webpack-dev-server/commit/c7ba44deb15633ae1809a1284c45538a91ec140e"><code>c7ba44d</code></a> chore(deps-dev): bump webpack from 5.59.1 to 5.60.0 (<a href="https://github-redirect.dependabot.com/webpack/webpack-dev-server/issues/3981">#3981</a>)</li>
<li><a href="https://github.com/webpack/webpack-dev-server/commit/91e71349c90607ea16363947cb9afd14570f27fd"><code>91e7134</code></a> chore(deps-dev): bump marked from 3.0.7 to 3.0.8 (<a href="https://github-redirect.dependabot.com/webpack/webpack-dev-server/issues/3975">#3975</a>)</li>
<li><a href="https://github.com/webpack/webpack-dev-server/commit/a70a7ef025f07ec6be69cee0b3b5204c7e3a0c5b"><code>a70a7ef</code></a> feat: add the <code>server</code> option (<a href="https://github-redirect.dependabot.com/webpack/webpack-dev-server/issues/3940">#3940</a>)</li>
<li><a href="https://github.com/webpack/webpack-dev-server/commit/ab417d1883139c20cf0788831ff061a55259a2f3"><code>ab417d1</code></a> chore(deps-dev): bump klona from 2.0.4 to 2.0.5 (<a href="https://github-redirect.dependabot.com/webpack/webpack-dev-server/issues/3983">#3983</a>)</li>
<li><a href="https://github.com/webpack/webpack-dev-server/commit/22e770b9df73280cbd957826878cb765e567572d"><code>22e770b</code></a> chore(deps): bump open from 8.3.0 to 8.4.0 (<a href="https://github-redirect.dependabot.com/webpack/webpack-dev-server/issues/3977">#3977</a>)</li>
<li><a href="https://github.com/webpack/webpack-dev-server/commit/e65ebc3f03208590ce68232fe7e3351c8742d839"><code>e65ebc3</code></a> chore(deps-dev): bump eslint from 8.0.1 to 8.1.0 (<a href="https://github-redirect.dependabot.com/webpack/webpack-dev-server/issues/3974">#3974</a>)</li>
<li><a href="https://github.com/webpack/webpack-dev-server/commit/2a490fd644714183fd7a0777374f0d65bcf0f9cb"><code>2a490fd</code></a> chore(deps-dev): bump core-js from 3.18.3 to 3.19.0 (<a href="https://github-redirect.dependabot.com/webpack/webpack-dev-server/issues/3980">#3980</a>)</li>
<li>Additional commits viewable in <a href="https://github.com/webpack/webpack-dev-server/compare/v4.3.1...v4.4.0">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=webpack-dev-server&package-manager=npm_and_yarn&previous-version=4.3.1&new-version=4.4.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
3 years ago
|
|
|
chokidar "^3.5.2"
|
|
|
|
colorette "^2.0.10"
|
|
|
|
compression "^1.7.4"
|
|
|
|
connect-history-api-fallback "^1.6.0"
|
|
|
|
default-gateway "^6.0.3"
|
|
|
|
del "^6.0.0"
|
|
|
|
express "^4.17.1"
|
|
|
|
graceful-fs "^4.2.6"
|
|
|
|
html-entities "^2.3.2"
|
|
|
|
http-proxy-middleware "^2.0.0"
|
|
|
|
ipaddr.js "^2.0.1"
|
|
|
|
open "^8.0.9"
|
|
|
|
p-retry "^4.5.0"
|
|
|
|
portfinder "^1.0.28"
|
|
|
|
schema-utils "^4.0.0"
|
|
|
|
selfsigned "^2.0.0"
|
|
|
|
serve-index "^1.9.1"
|
|
|
|
sockjs "^0.3.21"
|
|
|
|
spdy "^4.0.2"
|
|
|
|
strip-ansi "^7.0.0"
|
|
|
|
webpack-dev-middleware "^5.3.0"
|
|
|
|
ws "^8.1.0"
|
|
|
|
|
|
|
|
webpack-merge@^5.7.3:
|
|
|
|
version "5.8.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.8.0.tgz#2b39dbf22af87776ad744c390223731d30a68f61"
|
|
|
|
integrity sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==
|
|
|
|
dependencies:
|
|
|
|
clone-deep "^4.0.1"
|
|
|
|
wildcard "^2.0.0"
|
|
|
|
|
Lexer string interning (#1758)
This Pull Request is part of #279.
It adds a string interner to Boa, which allows many types to not contain heap-allocated strings, and just contain a `NonZeroUsize` instead. This can move types to the stack (hopefully I'll be able to move `Token`, for example, maybe some `Node` types too.
Note that the internet is for now only available in the lexer. Next steps (in this PR or future ones) would include also using interning in the parser, and finally in execution. The idea is that strings should be represented with a `Sym` until they are displayed.
Talking about display. I have changed the `ParseError` type in order to not contain anything that could contain a `Sym` (basically tokens), which might be a bit faster, but what is important is that we don't depend on the interner when displaying errors.
The issue I have now is in order to display tokens. This requires the interner if we want to know identifiers, for example. The issue here is that Rust doesn't allow using a `fmt::Formatter` (only in nightly), which is making my head hurt. Maybe someone of you can find a better way of doing this.
Then, about `cursor.expect()`, this is the only place where we don't have the expected token type as a static string, so it's failing to compile. We have the option of changing the type definition of `ParseError` to contain an owned string, but maybe we can avoid this by having a `&'static str` come from a `TokenKind` with the default values, such as "identifier" for an identifier. I wanted for you to think about it and maybe we can just add that and avoid allocations there.
Oh, and this depends on the VM-only branch, so that has to be merged before :)
Another thing to check: should the interner be in its own module?
3 years ago
|
|
|
webpack-sources@^3.2.3:
|
|
|
|
version "3.2.3"
|
|
|
|
resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde"
|
|
|
|
integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==
|
|
|
|
|
|
|
|
webpack@^5.67.0:
|
Lexer string interning (#1758)
This Pull Request is part of #279.
It adds a string interner to Boa, which allows many types to not contain heap-allocated strings, and just contain a `NonZeroUsize` instead. This can move types to the stack (hopefully I'll be able to move `Token`, for example, maybe some `Node` types too.
Note that the internet is for now only available in the lexer. Next steps (in this PR or future ones) would include also using interning in the parser, and finally in execution. The idea is that strings should be represented with a `Sym` until they are displayed.
Talking about display. I have changed the `ParseError` type in order to not contain anything that could contain a `Sym` (basically tokens), which might be a bit faster, but what is important is that we don't depend on the interner when displaying errors.
The issue I have now is in order to display tokens. This requires the interner if we want to know identifiers, for example. The issue here is that Rust doesn't allow using a `fmt::Formatter` (only in nightly), which is making my head hurt. Maybe someone of you can find a better way of doing this.
Then, about `cursor.expect()`, this is the only place where we don't have the expected token type as a static string, so it's failing to compile. We have the option of changing the type definition of `ParseError` to contain an owned string, but maybe we can avoid this by having a `&'static str` come from a `TokenKind` with the default values, such as "identifier" for an identifier. I wanted for you to think about it and maybe we can just add that and avoid allocations there.
Oh, and this depends on the VM-only branch, so that has to be merged before :)
Another thing to check: should the interner be in its own module?
3 years ago
|
|
|
version "5.67.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.67.0.tgz#cb43ca2aad5f7cc81c4cd36b626e6b819805dbfd"
|
|
|
|
integrity sha512-LjFbfMh89xBDpUMgA1W9Ur6Rn/gnr2Cq1jjHFPo4v6a79/ypznSYbAyPgGhwsxBtMIaEmDD1oJoA7BEYw/Fbrw==
|
|
|
|
dependencies:
|
|
|
|
"@types/eslint-scope" "^3.7.0"
|
|
|
|
"@types/estree" "^0.0.50"
|
|
|
|
"@webassemblyjs/ast" "1.11.1"
|
|
|
|
"@webassemblyjs/wasm-edit" "1.11.1"
|
|
|
|
"@webassemblyjs/wasm-parser" "1.11.1"
|
|
|
|
acorn "^8.4.1"
|
|
|
|
acorn-import-assertions "^1.7.6"
|
|
|
|
browserslist "^4.14.5"
|
|
|
|
chrome-trace-event "^1.0.2"
|
|
|
|
enhanced-resolve "^5.8.3"
|
|
|
|
es-module-lexer "^0.9.0"
|
|
|
|
eslint-scope "5.1.1"
|
|
|
|
events "^3.2.0"
|
|
|
|
glob-to-regexp "^0.4.1"
|
|
|
|
graceful-fs "^4.2.9"
|
|
|
|
json-parse-better-errors "^1.0.2"
|
|
|
|
loader-runner "^4.2.0"
|
|
|
|
mime-types "^2.1.27"
|
|
|
|
neo-async "^2.6.2"
|
|
|
|
schema-utils "^3.1.0"
|
|
|
|
tapable "^2.1.1"
|
|
|
|
terser-webpack-plugin "^5.1.3"
|
|
|
|
watchpack "^2.3.1"
|
Lexer string interning (#1758)
This Pull Request is part of #279.
It adds a string interner to Boa, which allows many types to not contain heap-allocated strings, and just contain a `NonZeroUsize` instead. This can move types to the stack (hopefully I'll be able to move `Token`, for example, maybe some `Node` types too.
Note that the internet is for now only available in the lexer. Next steps (in this PR or future ones) would include also using interning in the parser, and finally in execution. The idea is that strings should be represented with a `Sym` until they are displayed.
Talking about display. I have changed the `ParseError` type in order to not contain anything that could contain a `Sym` (basically tokens), which might be a bit faster, but what is important is that we don't depend on the interner when displaying errors.
The issue I have now is in order to display tokens. This requires the interner if we want to know identifiers, for example. The issue here is that Rust doesn't allow using a `fmt::Formatter` (only in nightly), which is making my head hurt. Maybe someone of you can find a better way of doing this.
Then, about `cursor.expect()`, this is the only place where we don't have the expected token type as a static string, so it's failing to compile. We have the option of changing the type definition of `ParseError` to contain an owned string, but maybe we can avoid this by having a `&'static str` come from a `TokenKind` with the default values, such as "identifier" for an identifier. I wanted for you to think about it and maybe we can just add that and avoid allocations there.
Oh, and this depends on the VM-only branch, so that has to be merged before :)
Another thing to check: should the interner be in its own module?
3 years ago
|
|
|
webpack-sources "^3.2.3"
|
|
|
|
|
|
|
|
websocket-driver@>=0.5.1, websocket-driver@^0.7.4:
|
|
|
|
version "0.7.4"
|
|
|
|
resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760"
|
|
|
|
integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==
|
|
|
|
dependencies:
|
|
|
|
http-parser-js ">=0.5.1"
|
|
|
|
safe-buffer ">=5.1.0"
|
|
|
|
websocket-extensions ">=0.1.1"
|
|
|
|
|
|
|
|
websocket-extensions@>=0.1.1:
|
|
|
|
version "0.1.4"
|
|
|
|
resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42"
|
|
|
|
integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==
|
|
|
|
|
|
|
|
which@^2.0.1, which@^2.0.2:
|
|
|
|
version "2.0.2"
|
|
|
|
resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
|
|
|
|
integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
|
|
|
|
dependencies:
|
|
|
|
isexe "^2.0.0"
|
|
|
|
|
|
|
|
wildcard@^2.0.0:
|
|
|
|
version "2.0.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.0.tgz#a77d20e5200c6faaac979e4b3aadc7b3dd7f8fec"
|
|
|
|
integrity sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==
|
|
|
|
|
|
|
|
wrappy@1:
|
|
|
|
version "1.0.2"
|
|
|
|
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
|
|
|
|
integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
|
|
|
|
|
|
|
|
ws@^8.1.0:
|
Lexer string interning (#1758)
This Pull Request is part of #279.
It adds a string interner to Boa, which allows many types to not contain heap-allocated strings, and just contain a `NonZeroUsize` instead. This can move types to the stack (hopefully I'll be able to move `Token`, for example, maybe some `Node` types too.
Note that the internet is for now only available in the lexer. Next steps (in this PR or future ones) would include also using interning in the parser, and finally in execution. The idea is that strings should be represented with a `Sym` until they are displayed.
Talking about display. I have changed the `ParseError` type in order to not contain anything that could contain a `Sym` (basically tokens), which might be a bit faster, but what is important is that we don't depend on the interner when displaying errors.
The issue I have now is in order to display tokens. This requires the interner if we want to know identifiers, for example. The issue here is that Rust doesn't allow using a `fmt::Formatter` (only in nightly), which is making my head hurt. Maybe someone of you can find a better way of doing this.
Then, about `cursor.expect()`, this is the only place where we don't have the expected token type as a static string, so it's failing to compile. We have the option of changing the type definition of `ParseError` to contain an owned string, but maybe we can avoid this by having a `&'static str` come from a `TokenKind` with the default values, such as "identifier" for an identifier. I wanted for you to think about it and maybe we can just add that and avoid allocations there.
Oh, and this depends on the VM-only branch, so that has to be merged before :)
Another thing to check: should the interner be in its own module?
3 years ago
|
|
|
version "8.4.2"
|
|
|
|
resolved "https://registry.yarnpkg.com/ws/-/ws-8.4.2.tgz#18e749868d8439f2268368829042894b6907aa0b"
|
|
|
|
integrity sha512-Kbk4Nxyq7/ZWqr/tarI9yIt/+iNNFOjBXEWgTb4ydaNHBNGgvf2QHbS9fdfsndfjFlFwEd4Al+mw83YkaD10ZA==
|
|
|
|
|
|
|
|
yallist@^4.0.0:
|
|
|
|
version "4.0.0"
|
|
|
|
resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
|
|
|
|
integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
|