profile
viewpoint
Moti Zilberman motiz88 @facebook London, UK

dwyl/aws-sdk-mock 671

:rainbow: AWSomocks for Javascript/Node.js aws-sdk tested, documented & maintained. Contributions welcome!

FormidableLabs/react-context-composer 58

[DEPRECATED] Clean composition of React's new Context API

motiz88/babel-plugin-transform-hoist-nested-functions 30

Babel plugin to move nested functions to outer scopes

motiz88/animated.macro 29

A tiny language for arithmetic over React Native's Animated values. 🕺🏽🔢

motiz88/aws-sdk-flow-decl-gen 4

Flow type declarations generator for AWS SDK

motiz88/aws-sdk-flow-decls 2

Flow type declarations for AWS SDK

motiz88/babel-plugin-add-jsdoc-properties 2

Adds JSDoc annotations to source code

motiz88/babel-plugin-transform-react-loadable 2

Experimental Babel plugin to make advanced usage of react-loadable easier.

lilachzilberman/tomcat-python-base-image 0

A Tomcat 8 and Python 3 base image with image processing & machine learning dependencies preinstalled.

pull request commentfkling/astexplorer

Add Hermes parser for JavaScript

@fkling Strictly speaking, I was being cautious in saying this is blocked. If you're interested and don't mind the quirks of this integration too much (namely: checking in hermes.js and hermes.js.mem under website/public, not having structured error output), then IMO there's nothing stopping us from merging this and upgrading to the "proper" npm version later when that's available.

motiz88

comment created time in 3 days

fork motiz88/estree

The ESTree Spec

fork in 3 days

starteddspinellis/GW-BASIC

started time in 8 days

Pull request review commentfkling/astexplorer

Add Hermes parser for JavaScript

+import defaultParserInterface from './utils/defaultESTreeParserInterface';+import HermesWorkerClient from './hermes/HermesWorkerClient';++const ID = 'hermes';+export const defaultOptions = {+  jsx: true,+};+export const parserSettingsConfiguration = {+  fields: [+    'jsx',+  ],+};++export default {+  ...defaultParserInterface,++  id: ID,+  displayName: ID,+  version: 'N/A',+  homepage: 'https://hermesengine.dev/',+  locationProps: new Set(['loc', 'range']),++  loadParser(callback) {+    callback(new HermesWorkerClient());+  },++  async parse(hermes, code, options) {+    const hermesOutput = await hermes.run(['-dump-ast', '--pretty-json', '-dump-source-location', options.jsx ? '-parse-jsx' : ''].filter(Boolean), code);+    try {+      return JSON.parse(hermesOutput);+    } catch (e) {+      console.error(e);

Yeah I can probably delete this. See rationale for having it in the first place in the comment below.

motiz88

comment created time in 9 days

Pull request review commentfkling/astexplorer

Add Hermes parser for JavaScript

+import defaultParserInterface from './utils/defaultESTreeParserInterface';+import HermesWorkerClient from './hermes/HermesWorkerClient';++const ID = 'hermes';+export const defaultOptions = {+  jsx: true,+};+export const parserSettingsConfiguration = {+  fields: [+    'jsx',+  ],+};++export default {+  ...defaultParserInterface,++  id: ID,+  displayName: ID,+  version: 'N/A',+  homepage: 'https://hermesengine.dev/',+  locationProps: new Set(['loc', 'range']),++  loadParser(callback) {+    callback(new HermesWorkerClient());+  },++  async parse(hermes, code, options) {+    const hermesOutput = await hermes.run(['-dump-ast', '--pretty-json', '-dump-source-location', options.jsx ? '-parse-jsx' : ''].filter(Boolean), code);

I believe we're in the process of figuring out APIs for various similar integrations, not sure if there's anything very concrete yet that would fit here. (cc @tmikov)

motiz88

comment created time in 9 days

Pull request review commentfkling/astexplorer

Add Hermes parser for JavaScript

+import defaultParserInterface from './utils/defaultESTreeParserInterface';+import HermesWorkerClient from './hermes/HermesWorkerClient';++const ID = 'hermes';+export const defaultOptions = {+  jsx: true,+};+export const parserSettingsConfiguration = {+  fields: [+    'jsx',+  ],+};++export default {+  ...defaultParserInterface,++  id: ID,+  displayName: ID,+  version: 'N/A',+  homepage: 'https://hermesengine.dev/',+  locationProps: new Set(['loc', 'range']),++  loadParser(callback) {+    callback(new HermesWorkerClient());+  },++  async parse(hermes, code, options) {+    const hermesOutput = await hermes.run(['-dump-ast', '--pretty-json', '-dump-source-location', options.jsx ? '-parse-jsx' : ''].filter(Boolean), code);+    try {+      return JSON.parse(hermesOutput);+    } catch (e) {+      console.error(e);+      throw new Error(hermesOutput);

e here is just the JSON parse error. hermesOutput is stdout+stderr from the Hermes binary which will contain the error message from parsing JS, or (if there's a bug) the bad AST output that caused JSON parsing to fail. This is admittedly a hack; in the long run we'd probably want Hermes to emit structured errors in the JSON like other parsers do.

motiz88

comment created time in 9 days

PR opened fkling/astexplorer

Add Hermes parser for JavaScript

Proof-of-concept integration of the Hermes engine's parser into AST Explorer. Try it at astexplorer-hermes.now.sh.

screenshot of AST Explorer with the Hermes parser

Like the official Hermes playground page, this uses an ad hoc asm.js build of Hermes that isn't currently published to npm. I'm assuming that's a blocker to actually merging this PR, which is the main reason this is a draft.

+346 -7

0 comment

9 changed files

pr created time in 9 days

push eventmotiz88/astexplorer

Moti Zilberman

commit sha d0b8069d7fc2367f854a57a11678d14598966416

Empty commit for Vercel

view details

push time in 9 days

push eventmotiz88/astexplorer

Moti Zilberman

commit sha a6d7b4e8417ef037c943d4c70f623a9673209fe4

flow-parser: Update to v0.32.0 (#145)

view details

Dan Harper

commit sha 155bea8dd2ee0462248776c2500c94e793d3c919

Update PostCSS transform example (#148) to match preferred code style in transform plugins for #147 see https://github.com/postcss/postcss-plugin-boilerplate/commit/4d05aabcacd5648bb115108cfff1f4831fb190f2

view details

Georgii Dolzhykov

commit sha ddeb59669103b97867be9f7094ba9a26ecd8444e

build: fix for Node 6 (#150) The exception `Path must be a string` comes from `html-webpack-plugin`, v1.7.0 https://github.com/ampedandwired/html-webpack-plugin/blob/v1.7.0/index.js#L205 Passing `filename` explicitly fixes it. Closes #137

view details

Moti Zilberman

commit sha 2c9781bb7b472003a99e3dceaa7b3b3a2c9f6424

Allow building on Windows using cross-env (#149)

view details

Christopher Chedeau

commit sha 3a6211ef9181b4f412c160f89189ac897ca27c78

Update jscodeshift default (#151) * Update jscodeshift default A few changes to hopefully make it more beginner friendly - Rename the variable `p` to `path` to make it more explicit - Add `{}` inside of the arrow function in order to be able to add `console.log` more easily - Use `forEach` instead of directly `replaceWith` as it's extremely likely that the codemod the person is going to write is not going to be as straightforward as just replacing a node with another one. I believe that this is going to be make the default experience more developer friendly. Let me know what you think :) cc @fkling * Update codeExample.txt

view details

Felix Kling

commit sha 01d76daac60b0933f7c1ba04d60bb14865121430

Update esprima to v3 and acorn to v4

view details

Felix Kling

commit sha 13c2d5db93d59bf51a78335d8c2c84f4a1ae1a3f

Update Tern and add note about autocompletion to jscodeshift example

view details

Marshall Roch

commit sha 42d7307ff8ec8a744f28458ff7b2df85fc8941a6

Upgrade to flow-parser@0.33.0 (#155)

view details

Henry Zhu

commit sha 9f01b3044e38acd61d3117b2e1305fb77f335194

update babel, babylon (#154)

view details

Henry Zhu

commit sha f5381696ea786ce9209d6333412c875242bf9e9b

add dynamicImport plugin (#157)

view details

Felix Kling

commit sha 9dead9386e562bd2acd5aa1153b1825cb3368f23

Switch to yarn (closes #156) ... which basically just means checking in the new yarn.lock file. npm should still work, except that there is no shrinkwrap anymore.

view details

Felix Kling

commit sha 1724e96780dca41f4cd844b4a4cb971154751d6d

Add flow's and babylon6's parser settings to recast's settings dialog Recast is a wrapper around existing parsers, but there hasn't been a way to specify the options passed to the wrapped parser. This change reuses the configuration dialog options for the flow and babylon6 parsers and shows them in the recast settings dialog.

view details

Felix Kling

commit sha ffb8006934f1e769274f49f46558cf8a5e29b4fb

Upgrade to flow v0.34

view details

(´・ω・`)

commit sha b8baa637c01807ad4a365b5f9b38a51e07867ec6

upgrade typescript (#158)

view details

Henry Zhu

commit sha be1e07ed7d8ebf6453c95211734040f3375e43a8

Use recast in babel transform (#161)

view details

Henry Zhu

commit sha de0a896e4db96bc2285c182d3161bff391ffb61d

add a name, remove parameter destructuring [skip ci] (#162) * add a name, remove parameter destructuring [skip ci] * use const [skip ci]

view details

Henry Zhu

commit sha 8f9d9b0ae42d59c5da244b9206afbd2770667dcb

Allow stage-0 syntax in transform plugins (#164)

view details

Gabe Levi

commit sha 359ec38b2630b332f89cc2ea95ba9a795d6266e5

Upgrade to flow v0.35 (#168)

view details

Felix Kling

commit sha f2869d1fec30d53031f9e7d101a3e3c508b7cdfd

Update depdendencies

view details

Kelly Selden

commit sha d77a402f4ba620a57d93187bee3d6a602a5f8520

update url to this location (#171)

view details

push time in 9 days

create barnchmotiz88/astexplorer

branch : hermes-js-parser

created branch time in 9 days

startedjdan/98.css

started time in a month

push eventmotiz88/react

Moti Zilberman

commit sha 7af3aa3ceaca382c8b547d00eb0894fccefe29e1

Lint fix

view details

Moti Zilberman

commit sha 8b5adcfde5d1be834274685023652862ece49d3d

Add component location to stack trace on Hermes

view details

push time in 2 months

push eventmotiz88/react

Moti Zilberman

commit sha 7af3aa3ceaca382c8b547d00eb0894fccefe29e1

Lint fix

view details

push time in 2 months

push eventmotiz88/react

Will Douglas

commit sha 93a229bab59f94e214256582c55d3b6c1fc2b958

Update eslint rule exhaustive deps to use new suggestions feature (#17385) This closes #16313

view details

Dan Abramov

commit sha 56a8c353219ac93ab358eb28009de881ae48251e

eslint-plugin-react-hooks@2.4.0

view details

Dan Abramov

commit sha d533229fba8f7e7e576436bf52bbcae56c862906

Fix Prettier

view details

Dominic Gannaway

commit sha f48a5e64e8fd903293f5b854beb795dcc6bae86d

Further cleanup of plugin event system (#18056)

view details

Haseeb Furkhan Mohammed

commit sha d5ddc16a3398c33d70489cee87f5176c85f3c9f5

React developer tools extension for Microsoft Edge (#18041) * Port Chrome extension to Microsoft Edge

view details

Brian Vaughn

commit sha 90be006da8e231279151e7b1518bb64c62e26851

Updated Yarn lockfile

view details

Ryota Murakami

commit sha 48c4867d745bbf91ae73892545960c0979c2dbf7

Update issue templates to directly link to relevant sources (#18039) GitHub supports linking to off-site sources for certain types of issue.

view details

Dominic Gannaway

commit sha 1a6d8179b6dd427fdf7ee50d5ac45ae5a40979eb

[react-interactions] Ensure onBeforeBlur fires for hideInstance (#18064)

view details

Andrew Clark

commit sha 56d8a73affad624ee4d48f1685e0a92adce0bd9c

[www] Disable Scheduler `timeout` w/ dynamic flag (#18069) Before attempting to land an expiration times refactor, I want to see if this particular change will impact performance (either positively or negatively). I will test this with a GK.

view details

Brian Vaughn

commit sha 691096c95d1019f57e0da2c9a060c5e094b7c586

Split recent passive effects changes into 2 flags (#18030) * Split recent passive effects changes into 2 flags Separate flags can now be used to opt passive effects into: 1) Deferring destroy functions on unmount to subsequent passive effects flush 2) Running all destroy functions (for all fibers) before create functions This allows us to test the less risky feature (2) separately from the more risky one. * deferPassiveEffectCleanupDuringUnmount is ignored unless runAllPassiveEffectDestroysBeforeCreates is true

view details

Brian Vaughn

commit sha 14afeb1033e25942e63787750388972916f20a39

Added missing feature flag

view details

Andrew Clark

commit sha 4d9f8500651c5d1e19d8ec9a2359d5476a53814b

Re-throw errors thrown by the renderer at the root in the complete phase (#18029) * Re-throw errors thrown by the renderer at the root React treats errors thrown at the root as a fatal because there's no parent component that can capture it. (This is distinct from an "uncaught error" that isn't wrapped in an error boundary, because in that case we can fall back to deleting the whole tree -- not great, but at least the error is contained to a single root, and React is left in a consistent state.) It turns out we didn't have a test case for this path. The only way it can happen is if the renderer's host config throws. We had similar test cases for host components, but none for the host root. This adds a new test case and fixes a bug where React would keep retrying the root because the `workInProgress` pointer was not advanced to the next fiber. (Which in this case is `null`, since it's the root.) We could consider in the future trying to gracefully exit from certain types of root errors without leaving React in an inconsistent state. For example, we should be able to gracefully exit from errors thrown in the begin phase. For now, I'm treating it like an internal invariant and immediately exiting. * Add comment

view details

Dominic Gannaway

commit sha 4912ba31e3dcc8d08f5b16ae38b38d74da85ea21

Add modern event system flag + rename legacy plugin module (#18073)

view details

Sunil Pai

commit sha a8643e905e39f041cda80b498dc06018b27f6554

add no-restricted-globals to eslint config (#18076) Our current lint config assumes a browser environment, which means it won't warn you if you use a variable like `name` without declaring it earlier. This imports the same list as the one used by create-react-app, and enables it against our codebase.

view details

Dominic Gannaway

commit sha 2512c309e34f0207d29c19392d144edab719f347

Remove Flare bundles from build (#18077)

view details

Moji Izadmehr

commit sha 44e5f5e6451cf192af5dee3aa1f3a87119fc231e

Add fiber summary tooltip to devtools profiling (#18048) * Add tooltip component * Separate logic of ProfilerWhatChanged to a component * Add hovered Fiber info tooltip component * Add flame graph chart tooltip * Add commit ranked list tooltip * Fix flow issues * Minor improvement in filter * Fix flickering issue * Resolved issues on useCallbacks and mouse event listeners * Fix lints * Remove unnecessary useCallback

view details

Dan Abramov

commit sha a12dd52a4a5f19d990694810db86cc30e98308ae

Don't build some packages for WWW (#18078)

view details

Dominic Gannaway

commit sha 1000f6135efba4f8d8ebffedeb7b472f532a8475

Add container to event listener signature (#18075)

view details

Dominic Gannaway

commit sha b6c94d636cb33a265671b864b97870da38d97207

Add guard around FocusWithin responder root events (#18080)

view details

Brian Vaughn

commit sha 7e770dae93e1a934b905d8678c7ce368ed86ef0b

Profiler tooltip tweaks (#18082) * Moved Profiler views into Profiler folder * Tweaked Profiler tooltip CSS styles * Tweaked Tooltip positioning code

view details

push time in 2 months

Pull request review commentfacebook/react

Give unresolved lazy() a name in component stack

 describe('ReactLazy', () => {       expect(Scheduler).toFlushAndYield([]);     }).toWarnDev('Function components cannot be given refs');   });++  it('should error with a component stack naming the resolved component', async () => {+    let componentStackMessage;++    const LazyText = lazy(() =>+      fakeImport(function ResolvedText() {+        throw new Error('oh no');+      }),+    );++    class ErrorBoundary extends React.Component {+      state = {error: null};++      componentDidCatch(error, errMessage) {+        componentStackMessage = errMessage.componentStack;+        this.setState({+          error,+        });+      }++      render() {+        return this.state.error ? null : this.props.children;+      }+    }++    ReactTestRenderer.create(+      <ErrorBoundary>+        <Suspense fallback={<Text text="Loading..." />}>+          <LazyText text="Hi" />+        </Suspense>+      </ErrorBoundary>,+      {unstable_isConcurrent: true},+    );++    expect(Scheduler).toFlushAndYield(['Loading...']);++    try {+      await Promise.resolve();+    } catch (e) {}++    expect(Scheduler).toFlushAndYield([]);++    expect(componentStackMessage).toContain('in ResolvedText');+  });++  it('should error with a component stack containing Lazy if unresolved', () => {+    let componentStackMessage;++    const LazyText = lazy(() => ({+      then(resolve, reject) {+        reject(new Error('oh no'));+      },+    }));++    class ErrorBoundary extends React.Component {+      state = {error: null};++      componentDidCatch(error, errMessage) {+        componentStackMessage = errMessage.componentStack;+        this.setState({+          error,+        });+      }++      render() {+        return this.state.error ? null : this.props.children;+      }+    }++    ReactTestRenderer.create(+      <ErrorBoundary>+        <Suspense fallback={<Text text="Loading..." />}>+          <LazyText text="Hi" />+        </Suspense>+      </ErrorBoundary>,+    );++    expect(Scheduler).toHaveYielded([]);++    expect(componentStackMessage).toContain('in Lazy');+  });

By "this" do you mean adding back displayName support? Yes, I'd be happy to.

motiz88

comment created time in 2 months

pull request commentfacebook/react

[WIP] Add component location to component stacks under Hermes

I'm rebasing and completing this now.

One issue is that there doesn't seem to be a way to import code from shared/... in react-devtools-shared/.... I need this to amend DevTools's fork of describeComponentFrame with a call to getComponentLocation which lives under shared/. Any thoughts on the proper way to do this? @bvaughn maybe?

motiz88

comment created time in 2 months

pull request commentfacebook/react

Add component stack parser

Moved ReactErrorInfoParser into react-debug-tools.

motiz88

comment created time in 2 months

push eventmotiz88/react

Will Douglas

commit sha 93a229bab59f94e214256582c55d3b6c1fc2b958

Update eslint rule exhaustive deps to use new suggestions feature (#17385) This closes #16313

view details

Dan Abramov

commit sha 56a8c353219ac93ab358eb28009de881ae48251e

eslint-plugin-react-hooks@2.4.0

view details

Dan Abramov

commit sha d533229fba8f7e7e576436bf52bbcae56c862906

Fix Prettier

view details

Dominic Gannaway

commit sha f48a5e64e8fd903293f5b854beb795dcc6bae86d

Further cleanup of plugin event system (#18056)

view details

Haseeb Furkhan Mohammed

commit sha d5ddc16a3398c33d70489cee87f5176c85f3c9f5

React developer tools extension for Microsoft Edge (#18041) * Port Chrome extension to Microsoft Edge

view details

Brian Vaughn

commit sha 90be006da8e231279151e7b1518bb64c62e26851

Updated Yarn lockfile

view details

Ryota Murakami

commit sha 48c4867d745bbf91ae73892545960c0979c2dbf7

Update issue templates to directly link to relevant sources (#18039) GitHub supports linking to off-site sources for certain types of issue.

view details

Dominic Gannaway

commit sha 1a6d8179b6dd427fdf7ee50d5ac45ae5a40979eb

[react-interactions] Ensure onBeforeBlur fires for hideInstance (#18064)

view details

Andrew Clark

commit sha 56d8a73affad624ee4d48f1685e0a92adce0bd9c

[www] Disable Scheduler `timeout` w/ dynamic flag (#18069) Before attempting to land an expiration times refactor, I want to see if this particular change will impact performance (either positively or negatively). I will test this with a GK.

view details

Brian Vaughn

commit sha 691096c95d1019f57e0da2c9a060c5e094b7c586

Split recent passive effects changes into 2 flags (#18030) * Split recent passive effects changes into 2 flags Separate flags can now be used to opt passive effects into: 1) Deferring destroy functions on unmount to subsequent passive effects flush 2) Running all destroy functions (for all fibers) before create functions This allows us to test the less risky feature (2) separately from the more risky one. * deferPassiveEffectCleanupDuringUnmount is ignored unless runAllPassiveEffectDestroysBeforeCreates is true

view details

Brian Vaughn

commit sha 14afeb1033e25942e63787750388972916f20a39

Added missing feature flag

view details

Andrew Clark

commit sha 4d9f8500651c5d1e19d8ec9a2359d5476a53814b

Re-throw errors thrown by the renderer at the root in the complete phase (#18029) * Re-throw errors thrown by the renderer at the root React treats errors thrown at the root as a fatal because there's no parent component that can capture it. (This is distinct from an "uncaught error" that isn't wrapped in an error boundary, because in that case we can fall back to deleting the whole tree -- not great, but at least the error is contained to a single root, and React is left in a consistent state.) It turns out we didn't have a test case for this path. The only way it can happen is if the renderer's host config throws. We had similar test cases for host components, but none for the host root. This adds a new test case and fixes a bug where React would keep retrying the root because the `workInProgress` pointer was not advanced to the next fiber. (Which in this case is `null`, since it's the root.) We could consider in the future trying to gracefully exit from certain types of root errors without leaving React in an inconsistent state. For example, we should be able to gracefully exit from errors thrown in the begin phase. For now, I'm treating it like an internal invariant and immediately exiting. * Add comment

view details

Dominic Gannaway

commit sha 4912ba31e3dcc8d08f5b16ae38b38d74da85ea21

Add modern event system flag + rename legacy plugin module (#18073)

view details

Sunil Pai

commit sha a8643e905e39f041cda80b498dc06018b27f6554

add no-restricted-globals to eslint config (#18076) Our current lint config assumes a browser environment, which means it won't warn you if you use a variable like `name` without declaring it earlier. This imports the same list as the one used by create-react-app, and enables it against our codebase.

view details

Dominic Gannaway

commit sha 2512c309e34f0207d29c19392d144edab719f347

Remove Flare bundles from build (#18077)

view details

Moji Izadmehr

commit sha 44e5f5e6451cf192af5dee3aa1f3a87119fc231e

Add fiber summary tooltip to devtools profiling (#18048) * Add tooltip component * Separate logic of ProfilerWhatChanged to a component * Add hovered Fiber info tooltip component * Add flame graph chart tooltip * Add commit ranked list tooltip * Fix flow issues * Minor improvement in filter * Fix flickering issue * Resolved issues on useCallbacks and mouse event listeners * Fix lints * Remove unnecessary useCallback

view details

Dan Abramov

commit sha a12dd52a4a5f19d990694810db86cc30e98308ae

Don't build some packages for WWW (#18078)

view details

Dominic Gannaway

commit sha 1000f6135efba4f8d8ebffedeb7b472f532a8475

Add container to event listener signature (#18075)

view details

Dominic Gannaway

commit sha b6c94d636cb33a265671b864b97870da38d97207

Add guard around FocusWithin responder root events (#18080)

view details

Brian Vaughn

commit sha 7e770dae93e1a934b905d8678c7ce368ed86ef0b

Profiler tooltip tweaks (#18082) * Moved Profiler views into Profiler folder * Tweaked Profiler tooltip CSS styles * Tweaked Tooltip positioning code

view details

push time in 2 months

push eventmotiz88/react

Moti Zilberman

commit sha f5d4316fc20f431a51e36dc2866f4ad73f5a4bdf

Give unresolved lazy() a name in component stack

view details

push time in 2 months

push eventmotiz88/react

Brian Vaughn

commit sha 67e749a73a01482f2ccc42d13a95dc72ba8ee59a

Tweaked modal font size style

view details

Brian Vaughn

commit sha dbbf30a332936b67c88631d7ccc2ba5d32114ec5

Make my code PRETTIER

view details

Brian Vaughn

commit sha 0abaefb7c2f10d64d4f5ba1bf9de40dfd9727300

Cleanup legacy backend event listener if modern backend is detected

view details

Brian Vaughn

commit sha f0a4b2f8e845e945d8cd8d86a2efcda8f9e0a85b

Merge branch 'fix-input-number-in-props' of https://github.com/koba04/react-devtools-experimental into koba04-fix-input-number-in-props

view details

Brian Vaughn

commit sha abe75b0e3909cd037e017a46295302a197d760af

Slight tweak to avoid setting an invalid numeric value in props editor

view details

Brian Vaughn

commit sha 167daf7a4ad54d11a99b80452ba3c9f8022a8b71

Updating NPM packages as 4.0.0-alpha.0

view details

Brian Vaughn

commit sha 33da657178159702c5e08c4634e062f992019208

Make console override detectable (for RN YellowBox)

view details

Brian Vaughn

commit sha 39ad101ea2e1d92ee78174e834a4dad615c5d2ad

Removed reference to setDefaultThemeName() method This functionality was added to v3 to support external changing of theme at runtime. This isn't supported in v4.

view details

Brian Vaughn

commit sha 4b34a77d290cf67ab0be51bf8edef0fe9787732b

Improve Bridge Flow types (#352) * Updated local fork of react-window * Updated Fow 97 -> 103 * Lint ignore NPM dist * Improved Bridge Flow types

view details

Brian Vaughn

commit sha ffb19346c72e965e5c6dd66bf8bdd835a4e4ff79

NPM packages 4.0.0-alpha.0 -> 4.0.0-alpha.1

view details

Andrew Clark

commit sha 2bd88e38aad28d4dc1fabd93a5dac0f32d812757

[Scheduler] Bugfix: Cancelling a continuation (#16151) Cancelling the original task should also cancel its continuation.

view details

Andrew Clark

commit sha 3f2cafe8bef0922525b445f7bd2e23ea75c817cf

[WIP][Scheduler] Use rIC to post first callback (#16166) Scheduler uses `requestAnimationFrame` to post tasks to the browser. If this happens at the beginning of a frame, the callback might not fire until the subsequent frame, even if the main thread is idle. Our theory was that this wouldn't be an issue in practice, because once the first rAF fires, we schedule the next rAF as early as possible in that frame. Combined with our heuristic for computing frame deadlines, we shouldn't get any idle time in between frames — only before the *first* frame. This reasoning holds true when you have a small number of large tasks, such as the ones posted by React. The idle time before the task starts is negligible relative to the lifetime of the entire task. However, it does not hold if you have many small tasks posted over a span of time, perhaps spawned by a flurry of IO events. In this case, instead of single, contiguous rAF loop preceded by an idle frame, you get many rAF loops preceded by many idle frames. Our new theory is that this is contributing to poor main thread utilization during page loads. To try to reclaim as much idle time as possible, this PR adds two experimental flags. The first one adds a `requestIdleCallback` call to start the rAF loop, which will fire before rAF if there's idle time left in the frame. (We still call rAF in case there isn't. We start working in whichever event fires first.) The second flag tries a similar strategy using `setTimeout(fn, 0)`. If the timer fires before rAF, we'll assume that the main thread is idle. If either `requestIdleCallback` or `setTimeout` fires before rAF, we'll immediately peform some work. Since we don't have a real frame time that we can use to compute the frame deadline, we'll do an entire frame length of work. This will probably push us past the vsync, but this is fine because we can catch up during the next frame, by which point a real rAF will have fired and the loop can proceed the same way it does today. Test plan: Try this on Facebook to see if it improves load times

view details

lunaruan

commit sha 03944bfb0bdacfe35b2a1722426ff744ae47d018

Update Suspense Priority Warning to Include Component that Triggered Update (#16030) Improved warning whenever lower priority events (ex. data fetching, page load) happen during a high priority update (ex. hover/click events) to include: 1.) Name of component that triggered the high priority update or 2.) Information that the update was triggered on the root

view details

Nicolas Gallagher

commit sha bbd21066e634c03db67f0b9570de60fdb4879dc0

[Flare] Press: fix keyboard interactions (#16179) Prevents Spacebar from scrolling the window. Prevents Enter from triggering a navigation if preventDefault is true. Fixes the emulated mouse events test.

view details

Brian Vaughn

commit sha 1178d5725731e228e948e6bec69f758d9e378b81

Fixed a module resolution issue and a syntax error from a bad merge

view details

Dan Abramov

commit sha 2237efcef9a8e63c1b3f1bd61481cb215d20986a

[Fresh] Track unrecoverable errors (#16183) * [Fresh] Track unrecoverable errors * Only initial errors set the flag

view details

Brian Vaughn

commit sha afb59916868395d9e95cfe16abe2e36bf8fc3739

Enable profiler+tracing for test renderer (#16178) This commit just brings the feature flags to parity with other renderers.

view details

Andrew Clark

commit sha bff7abf6ba2426b1172e6f1ccbecd40a478a2c49

[Scheduler][Bugfix] Multiple rAFs in same frame (#16184) Always sets `isRAFLoopRunning` back to false when an animation frame is scheduled. Fixes a bug where two rAFs fire in the same frame, but the second one exits and fails to schedule a new rAF. Fixes bug observed in Safari.

view details

Andrew Clark

commit sha 19354db511e74d96a1c8b6d8b589a72f025da498

[Scheduler] Add names to inline functions (#16180) Noticed when looking at the performance profiler with Luna that it's hard to tell which event causes `performWorkUntilDeadline` to fire because these functions are anonymous.

view details

Dominic Gannaway

commit sha 509889119360ed83ca6ef3f83bcf01e5aa7dcd81

[Flare] Redesign core event system (#16163)

view details

push time in 2 months

pull request commentfacebook/react

Give unresolved lazy() a name in component stack

@gaearon Yes. I've just rebased and pushed an update.

motiz88

comment created time in 2 months

pull request commentfacebook/react

[WIP] Add component location to component stacks under Hermes

I was hoping to start a discussion and get big-picture feedback on both this and the base PR #18043, then go implement any requested changes along with the known TODOs.

motiz88

comment created time in 2 months

Pull request review commentreact-native-community/releases

Groom 0.62 Changelog

 You can participate in the conversation around this release in [this issue](ADD) - Remove TextInput's `inputView` prop ([1804e7cbea](https://github.com/facebook/react-native/commit/1804e7cbea707a35046118090966a54031edfae8) by [@TheSavior](https://github.com/TheSavior)) - Animated: Remove `defaultProps` Parameter ([a70987cee2](https://github.com/facebook/react-native/commit/a70987cee24bcd027b9c4a5aa85dfd6a1aab74b3) by [@yungsters](https://github.com/yungsters)) - RN: Delete `TextInput.selectionState` Prop ([2becdfd404](https://github.com/facebook/react-native/commit/2becdfd4041f7f28138ba3a61c03e17c06dc2e50) by [@yungsters](https://github.com/yungsters))-- Remove framesToPop from bridge ([a483f802fd](https://github.com/facebook/react-native/commit/a483f802fddfd927f2baa0d95e2b4094d452cddd) by [@motiz88](https://github.com/motiz88))-- Remove TimePickerAndroid from React Native ([dbf070c51e](https://github.com/facebook/react-native/commit/dbf070c51ecd14127a8317faa75cb661697b5a6b) by [@cpojer](https://github.com/cpojer))-- Remove scrollWithoutAnimationTo from ScrollView ([c7e89909da](https://github.com/facebook/react-native/commit/c7e89909da70ac5290f9971080eb897567db3e43) by [@TheSavior](https://github.com/TheSavior))+- Remove support for `framesToPop` ([8bc02fdd52](https://github.com/facebook/react-native/commit/8bc02fdd52124d0a24d96e4a61d7688328ef1660) [cf4d45ec2b](https://github.com/facebook/react-native/commit/cf4d45ec2bcd301be7793d5840de21ec7d02275b) [a483f802fd](https://github.com/facebook/react-native/commit/a483f802fddfd927f2baa0d95e2b4094d452cddd) by [@motiz88](https://github.com/motiz88))

It's an observable change in behaviour, and if they rely on it in a very particular way, then it could conceivably require them to fix something on their end. So in that sense: Yes.

But it's more "this implementation detail changed, heads up if you've come to rely on it" which might not be the same thing as "this documented public API has gone away". Maybe I'm splitting hairs though.

rickhanlonii

comment created time in 2 months

Pull request review commentreact-native-community/releases

Groom 0.62 Changelog

 You can participate in the conversation around this release in [this issue](ADD) - Remove TextInput's `inputView` prop ([1804e7cbea](https://github.com/facebook/react-native/commit/1804e7cbea707a35046118090966a54031edfae8) by [@TheSavior](https://github.com/TheSavior)) - Animated: Remove `defaultProps` Parameter ([a70987cee2](https://github.com/facebook/react-native/commit/a70987cee24bcd027b9c4a5aa85dfd6a1aab74b3) by [@yungsters](https://github.com/yungsters)) - RN: Delete `TextInput.selectionState` Prop ([2becdfd404](https://github.com/facebook/react-native/commit/2becdfd4041f7f28138ba3a61c03e17c06dc2e50) by [@yungsters](https://github.com/yungsters))-- Remove framesToPop from bridge ([a483f802fd](https://github.com/facebook/react-native/commit/a483f802fddfd927f2baa0d95e2b4094d452cddd) by [@motiz88](https://github.com/motiz88))-- Remove TimePickerAndroid from React Native ([dbf070c51e](https://github.com/facebook/react-native/commit/dbf070c51ecd14127a8317faa75cb661697b5a6b) by [@cpojer](https://github.com/cpojer))-- Remove scrollWithoutAnimationTo from ScrollView ([c7e89909da](https://github.com/facebook/react-native/commit/c7e89909da70ac5290f9971080eb897567db3e43) by [@TheSavior](https://github.com/TheSavior))+- Remove support for `framesToPop` ([8bc02fdd52](https://github.com/facebook/react-native/commit/8bc02fdd52124d0a24d96e4a61d7688328ef1660) [cf4d45ec2b](https://github.com/facebook/react-native/commit/cf4d45ec2bcd301be7793d5840de21ec7d02275b) [a483f802fd](https://github.com/facebook/react-native/commit/a483f802fddfd927f2baa0d95e2b4094d452cddd) by [@motiz88](https://github.com/motiz88))

Commented on the other PR. I don't think this is necessarily a breaking change.

rickhanlonii

comment created time in 2 months

Pull request review commentreact-native-community/releases

Address unknown changelog entries

 You can participate in the conversation around this release in [this issue](ADD) - Remove TextInput's `inputView` prop ([1804e7cbea](https://github.com/facebook/react-native/commit/1804e7cbea707a35046118090966a54031edfae8) by [@TheSavior](https://github.com/TheSavior)) - Animated: Remove `defaultProps` Parameter ([a70987cee2](https://github.com/facebook/react-native/commit/a70987cee24bcd027b9c4a5aa85dfd6a1aab74b3) by [@yungsters](https://github.com/yungsters)) - RN: Delete `TextInput.selectionState` Prop ([2becdfd404](https://github.com/facebook/react-native/commit/2becdfd4041f7f28138ba3a61c03e17c06dc2e50) by [@yungsters](https://github.com/yungsters))+- Remove accessibilityStates property. ([7b35f427fd](https://github.com/facebook/react-native/commit/7b35f427fd66cb0f36921b992095fe5b3c14d8b9))+- Remove framesToPop from bridge ([a483f802fd](https://github.com/facebook/react-native/commit/a483f802fddfd927f2baa0d95e2b4094d452cddd) by [@motiz88](https://github.com/motiz88))

@rickhanlonii This commit isn't a breaking change. I believe you mean https://github.com/facebook/react-native/commit/8bc02fdd52124d0a24d96e4a61d7688328ef1660 (which is in the changelog btw), but that's not breaking either because React Native ships with an alternative mechanism already enabled and satisfactory defaults included for both existing and new apps.

I don't believe framesToPop was ever a documented API, more of a Facebookism that spread to some of our packages (like invariant). Looking at de facto external implications: Crash reporting services might see some extra stack frames we would previously filter out. That's if they weren't already doing their own thing with a custom ExceptionsManager (IIRC Sentry was the one I've seen do this).

rickhanlonii

comment created time in 2 months

issue commentfacebook/jest

Make console.error (and warn?) log a stack trace and codeframe like thrown errors do

The implementation itself it just new Error().stack

Since this is targeting Node, I would recommend Error.captureStackTrace with the constructorOpt which can be used to avoid adding unnecessary Jest-internal frames to the stack.

Example from the Node docs:

function MyError() {
  Error.captureStackTrace(this, MyError);
}

// Without passing MyError to captureStackTrace, the MyError
// frame would show up in the .stack property. By passing
// the constructor, we omit that frame, and retain all frames below it.
new MyError().stack;

I believe Jest filters stack traces anyway before displaying them, but it's probably better to avoid adding unnecessary info than rely on filtering to remove it.

kentcdodds

comment created time in 2 months

issue commentbabel/babel

`path.buildCodeFrameError('Error')` throws

Some version of this issue seems to have been reintroduced by https://github.com/babel/babel/pull/10914 in 7.8.0.

Before 7.8.0, @babel/core's parseSync would call normalizeFile which in turn would initialise hub, so traverseing and calling path.buildCodeFrameError worked.

Since 7.8.0, @babel/core's parseSync does not call normalizeFile, so hub isn't initialised and calling path.buildCodeFrameError within a traversal fails again.

pasaran

comment created time in 2 months

pull request commentfacebook/metro

[babel-plugin] Don't add es6 transforms when `unstable_disableES6Transforms` is set

At this point I'd add a new value to the unstable_transformProfile enum rather than an entirely new flag. This enum value would be used only by OSS.

It also makes sense to find bigger OSS codebases to try these changes on, since the type of issues we've run into internally can reflect real blockers but we probably can't keep landing and reverting this at FB :) keeping it as an experimental unstable flag might be sufficient though.

janicduplessis

comment created time in 2 months

fork motiz88/fbjs

A collection of utility libraries used by other Facebook JS projects.

fork in 3 months

push eventmotiz88/promise

Moti Zilberman

commit sha a3a955b1bca0dd8b38ebf387739a3da177ed3c42

Apply suggestions from code review Co-Authored-By: Forbes Lindesay <forbes@lindesay.co.uk>

view details

push time in 3 months

more