The Wayback Machine - https://web.archive.org/web/20201224064313/https://github.com/ljharb
Skip to content
Avatar
🔜
working on that thing you asked about
🔜
working on that thing you asked about

Highlights

Sponsors

@jsutton @instantish @lukyth @orta @leobalter @skyboyer @denisix @tempezen @phamtec @christophehurpeau @StandardResumeSponsors @maraisr @OussamaRomdhane

Sponsoring

@ari-os310 @cadence09 @TaLeaMonet @gitburd @naomiquinones @karolina-benitez @mjackson @Vets-Who-Code @eslint @PeterDaveHello @tatianamac @sdras @vaidehijoshi
ljharb/README.md

Hi My name's Jordan, and I've gradually mutated over the last decade into being super obsessed with open source, backwards compatibility, and finding ways to balance what I feel are ethical obligations to all users of projects I interact with, with the very real problem of time management, burnout, and work/life balance.

I've been a part of TC39 (the committee that writes the specification for JavaScript) since 2014, and I've been an editor of the specification since 2018. I've been heavily involved in the node community for as many years, and I've gradually created (but mostly inherited or been gifted) a decent number of open source projects. I persist in trying to maintain them all with maximal back compat, the strictest adherence to semver, and the greatest respect for users.

Projects I Maintain

Standards/Communities I Contribute To

this includes participation in working groups, committees, meetings, general issue triage, etc

How Sponsorship Helps

Although open source is a huge part of my life, it's not the most important part - I have a spouse, kids, and a dog; bills to pay; and I also try to give back to the wider community.

Sponsorship helps fund domains, travel, but also other sponsorships

Pinned

  1. JavaScript Style Guide

    JavaScript 103k 20k

  2. Node Version Manager - POSIX-compliant bash script to manage multiple active node.js versions

    Shell 45.8k 4.5k

  3. ECMAScript 5 compatibility shims for legacy (and modern) JavaScript engines

    JavaScript 7k 944

  4. A querystring parser with nesting support

    JavaScript 5.8k 558

  5. Tracking ECMAScript Proposals

    12.2k 492

  6. 1
    While attempting to explain JavaScript's `reduce` method on arrays, conceptually, I came up with the following - hopefully it's helpful; happy to tweak it if anyone has suggestions.
    2
    
                  
    3
    ## Intro
    4
    JavaScript Arrays have lots of built in methods on their prototype. Some of them *mutate* - ie, they change the underlying array in-place. Luckily, most of them do not - they instead return an entirely distinct array. Since arrays are conceptually a contiguous list of items, it helps code clarity and maintainability a lot to be able to operate on them in a "functional" way. (I'll also insist on referring to an array as a "list" - although in some languages, `List` is a native data type, in JS and this post, I'm referring to the concept. Everywhere I use the word "list" you can assume I'm talking about a JS Array) This means, to perform a single operation on the list as a whole ("atomically"), and to return a *new* list - thus making it much simpler to think about both the old list and the new one, what they contain, and what happened during the operation.
    5
    
                  

Contribution activity

December 2020

Created 1 repository

Created a pull request in enzymejs/enzyme that received 1 comment

[Tests] add shared lifecycle tests; move identical tests to shared

This PR consolidates duplicate tests into shared ones, as well as improving the spy output so failures are easier to debug.

+3,055 −4,539 1 comment
Opened 37 other pull requests in 37 repositories
yannickcr/eslint-plugin-react
1 merged
es-shims/is-nan
1 merged
es-shims/String.raw
1 merged
inspect-js/which-builtin-type
1 merged
inspect-js/has-template-literals
1 merged
inspect-js/is-boxed-primitive
1 merged
inspect-js/has-strict-mode
1 merged
inspect-js/which-boxed-primitive
1 merged
inspect-js/functions-have-names
1 merged
inspect-js/has-bigints
1 merged
inspect-js/is-map
1 merged
inspect-js/is-set
1 merged
inspect-js/is-weakmap
1 merged
inspect-js/which-collection
1 merged
inspect-js/is-weakset
1 merged
inspect-js/has-typed-arrays
1 merged
inspect-js/typed-array-length
1 merged
inspect-js/available-typed-arrays
1 merged
inspect-js/is-boolean-object
1 merged
inspect-js/has-object-spread
1 merged
inspect-js/is-equal
1 merged
inspect-js/is-typed-array
1 merged
inspect-js/which-typed-array
1 merged
inspect-js/is-arrow-function
1 merged
inspect-js/is-weakref
1 merged
12 repositories not shown
Reviewed 84 pull requests in 28 repositories
tc39/ecma262 12 pull requests
yannickcr/eslint-plugin-react 11 pull requests
coinbase/rest-hooks 9 pull requests
pkgjs/wiby 5 pull requests
tc39/proposals 5 pull requests
openjs-foundation/cross-project-council 4 pull requests
kangax/compat-table 4 pull requests
nvm-sh/nvm 3 pull requests
enzymejs/enzyme 3 pull requests
jsx-eslint/eslint-plugin-jsx-a11y 2 pull requests
benmosher/eslint-plugin-import 2 pull requests
babel/babel-polyfills 2 pull requests
nodejs/package-maintenance 2 pull requests
npm/cli 2 pull requests
airbnb/javascript 2 pull requests
tc39/agendas 2 pull requests
DianaSuvorova/eslint-plugin-react-redux 2 pull requests
tc39/proposal-regexp-match-indices 2 pull requests
ljharb/es-abstract 1 pull request
browserify/resolve 1 pull request
tc39/ecmarkup 1 pull request
airbnb/react-with-styles 1 pull request
DefinitelyTyped/DefinitelyTyped 1 pull request
openjs-foundation/project-status 1 pull request
tc39/notes 1 pull request
3 repositories not shown

Created an issue in cheeriojs/cheerio that received 7 comments

rc.4 includes an implicit Node bump

When I updated to rc5, tests started failing in node 4: https://travis-ci.com/github/enzymejs/enzyme/builds/210326410 Specifically, parse5-htmlpars…

7 comments
Opened 5 other issues in 5 repositories
npm/cli
1 open
tc39/proposal-record-tuple
1 open
nodejs/package-maintenance
1 open
tc39/proposal-js-module-blocks
1 open
tylerhall/SurtainlyNot
1 closed
Answered 2 discussions in 2 repositories
npm/rfcs
npm/feedback
You can’t perform that action at this time.