Вклады всегда приветствуются. Не стесняйтесь обратиться к @zloirock, если у вас есть вопросы.
Всегда есть какие-то "помощь требуемые" задачи. Вы можете сначала посмотреть на них. Конечно, требуются и другие виды помощи — вы можете обратиться к @zloirock по этому поводу или открыть задачи, если у вас есть какие-то идеи.
Перевод исправленных фраз:
packages/core-js/modules
.core-js
или приложений никаким образом.packages/core-js/internals
. Используйте уже существующие вспомогательные функции./modules/
в /internals|modules/
, так как это нарушит оптимизации через Babel / swc
. Указывайте такие зависимости в записях /es|stable|actual/full/
и используйте что-то вроде вспомогательной функции internals/get-built-in
.internals/export
. Используйте что-то другое только если эта вспомогательная функция не применима - например, если вы хотите полифилловать доступные свойства.- Если код реализации чистой версии значительно отличается от глобальной версии (что нечастое явление, в большинстве случаев достаточно константы internals/is-pure
), добавьте его в директорию packages/core-js-pure/override
. Оставшиеся части core-js-pure
будут скопированы из пакета core-js
.tests/compat/tests.js
, добавьте данные совместимости в файл packages/core-js-compat/src/data.mjs
, как это сделать см. ниже, и имя модуля полифилла в файл packages/core-js-compat/src/modules-by-versions.mjs
(эти данные также используются для получения списка полифиллов по умолчанию при упаковке и генерации индексов).packages/core-js/es
, packages/core-js/stable
, packages/core-js/actual
, packages/core-js/full
, packages/core-js/proposals
, packages/core-js/stage
и packages/core-js/web
.
tests/unit-global
и tests/unit-pure
.tests/entries/unit.mjs
.core-js-compat
Для обновления данных core-js-compat
:tests/compat/index.html
в этом браузере (тесты и результаты для текущего выпуска доступны по адресу http://zloirock.github.io/core-js/compat/
). Вы увидите, какие модули core-js
необходимы для этого браузера.- Если вы хотите добавить новые данные для NodeJS, запустите
npm run compat-node
с установленной требуемой версией NodeJS, и вы увидите результаты в консоли. Используйте npm run compat-node json
, если вы хотите получить результат в формате JSON.
npm run compat-deno
с установленной требуемой версией Deno, и вы увидите результаты в консоли. Используйте npm run compat-deno json
, если вы хотите получить результат в формате JSON.npm run compat-bun
с установленной требуемой версией Bun, и вы увидите результаты в консоли.compat-rhino
в файле package.json
, запустите npm run compat-rhino
, и вы увидите результаты в консоли.npm run compat-hermes YOUR_PATH_TO_HERMES
, и вы увидите результаты в консоли.packages/core-js-compat/src/data.mjs
.packages/core-js-compat/src/mapping.mjs
.| engine | как запустить тесты | базовые данные наследуются от | обязательная проверка | отображение для новой версии |
|--------------------|---------------------|--------------------------------|-----------------------|------------------------------|--- | --- | --- | --- | ---
android
| browser runner | chrome
, chrome-android
| |
bun
| bun runner | safari
(только ES) | обязательна |
chrome
| browser runner | | обязательна |
chrome-android
| browser runner | chrome
| |
deno
| deno runner | chrome
(только ES) | non-ES функции | обязательна
edge
| browser runner | ie
, chrome
| обязательна (<= Yöntem 18) |
electron
| browser runner | chrome
| | обязательна
firefox
| browser runner | | обязательна |
firefox-android
| browser runner | firefox
| |
hermes
| hermes runner | | обязательна |
ie
| browser runner | | обязательна |
ios
| browser runner | safari
| | если несогласовано (! = safari
)
node
| node runner | chrome
(только ES) | non-ES функции | обязательна
opera
| browser runner | chrome
| | если несогласовано (! = chrome
- 14)
opera-android
| browser runner | opera
, chrome-android
| | обязательна
phantom
| browser runner | safari
| |
quest
| browser runner | chrome-android
| | обязательна
react-native
| hermes runner | hermes
| обязательна |
rhino
| rhino runner | | обязательна |
safari
| browser runner | | обязательна |samsung
| browser runner | chrome-android
| | обязательнаяЕсли у вас нет доступа ко всем необходимым браузерам / версиям браузеров, используйте Sauce Labs, BrowserStack или Cloud Browser.## Стиль и стандарты
Стиль написания кода должен соответствовать нашему eslint.config.js
. Вы можете проверить его, вызвав npm run lint
. В разных местах используются разные синтаксис и ограничения стандартной библиотеки:
Имена файлов должны быть в формате kebab-case. Имена модулей полифиллов должны соответствовать правилу названия namespace.subnamespace-where-required.feature-name
, например, esnext.set.intersection
. Верхнеуровневое пространство имен должно быть es
для стабильных функций ECMAScript, esnext
для предложений ECMAScript и web
для других стандартов веба.## Тестирование
Перед тестированием вы должны установить зависимости:
npm i
Вы можете запустить основные тесты:
npm t
Вы можете запускать части тестового случая отдельно:
npm run lint
npx run-s prepare bundle test-unit-karma
npx run-s prepare bundle test-unit-node
npx run-s prepare bundle test-unit-bun
npx run-s prepare bundle-package test262
Promise
:
npx run-s prepare test-promises
Observable
:
npx run-s prepare test-observables
npx run-s prepare test-entries
core-js-compat
:
npx run-s prepare test-compat-tools
core-js-builder
:
npx run-s prepare test-builder
npx run-s prepare bundle
tests/unit-browser/global.html
tests/unit-browser/pure.html
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )