Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Check failed: !holder_map.has_named_interceptor(). when running jest #40030

Closed
oliversalzburg opened this issue Sep 7, 2021 · 15 comments
Closed
Labels
confirmed-bug Issues with confirmed bugs. v8 engine Issues and PRs related to the V8 dependency.

Comments

@oliversalzburg
Copy link
Contributor

oliversalzburg commented Sep 7, 2021

Version

16.9.0

Platform

Linux oliver-home 5.10.16.3-microsoft-standard-WSL2 #1 SMP Fri Apr 2 22:23:49 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

Subsystem

vm

What steps will reproduce the bug?

#40030 (comment)

How often does it reproduce? Is there a required condition?

Every single time.

What is the expected behavior?

Tests run as usual.

What do you see instead?

#
# Fatal error in , line 0
# Check failed: !holder_map.has_named_interceptor().
#
#
#
#FailureMessage Object: 0x7ffe016dc1c0
 1: 0xb691f1  [/home/oliver/.nvm/versions/node/v16.9.0/bin/node]
 2: 0x1bf3094 V8_Fatal(char const*, ...) [/home/oliver/.nvm/versions/node/v16.9.0/bin/node]
 3: 0x10ac4a1 v8::internal::ConcurrentLookupIterator::TryGetPropertyCell(v8::internal::Isolate*, v8::internal::LocalIsolate*, v8::internal::Handle<v8::internal::JSGlobalObject>, v8::internal::Handle<v8::internal::Name>) [/home/oliver/.nvm/versions/node/v16.9.0/bin/node]
 4: 0x1c5aa55  [/home/oliver/.nvm/versions/node/v16.9.0/bin/node]
 5: 0x1c5b9eb v8::internal::compiler::JSGlobalObjectRef::GetPropertyCell(v8::internal::compiler::NameRef const&, v8::internal::compiler::SerializationPolicy) const [/home/oliver/.nvm/versions/node/v16.9.0/bin/node]
 6: 0x1e61ba3 v8::internal::compiler::JSNativeContextSpecialization::ReduceNamedAccess(v8::internal::compiler::Node*, v8::internal::compiler::Node*, v8::internal::compiler::NamedAccessFeedback const&, v8::internal::compiler::AccessMode, v8::internal::compiler::Node*) [/home/oliver/.nvm/versions/node/v16.9.0/bin/node]
 7: 0x1e623c4 v8::internal::compiler::JSNativeContextSpecialization::ReducePropertyAccess(v8::internal::compiler::Node*, v8::internal::compiler::Node*, v8::base::Optional<v8::internal::compiler::NameRef>, v8::internal::compiler::Node*, v8::internal::compiler::FeedbackSource const&, v8::internal::compiler::AccessMode) [/home/oliver/.nvm/versions/node/v16.9.0/bin/node]
 8: 0x1e6274e v8::internal::compiler::JSNativeContextSpecialization::ReduceJSLoadNamed(v8::internal::compiler::Node*) [/home/oliver/.nvm/versions/node/v16.9.0/bin/node]
 9: 0x1df5e0a v8::internal::compiler::Reducer::Reduce(v8::internal::compiler::Node*, v8::internal::compiler::ObserveNodeManager*) [/home/oliver/.nvm/versions/node/v16.9.0/bin/node]
10: 0x1c92604  [/home/oliver/.nvm/versions/node/v16.9.0/bin/node]
11: 0x1df60be v8::internal::compiler::GraphReducer::Reduce(v8::internal::compiler::Node*) [/home/oliver/.nvm/versions/node/v16.9.0/bin/node]
12: 0x1df7895 v8::internal::compiler::GraphReducer::ReduceTop() [/home/oliver/.nvm/versions/node/v16.9.0/bin/node]
13: 0x1df7c48 v8::internal::compiler::GraphReducer::ReduceNode(v8::internal::compiler::Node*) [/home/oliver/.nvm/versions/node/v16.9.0/bin/node]
14: 0x1ca03fd v8::internal::compiler::InliningPhase::Run(v8::internal::compiler::PipelineData*, v8::internal::Zone*) [/home/oliver/.nvm/versions/node/v16.9.0/bin/node]
15: 0x1ca1291 v8::internal::compiler::PipelineImpl::CreateGraph() [/home/oliver/.nvm/versions/node/v16.9.0/bin/node]
16: 0x1ca1668 v8::internal::compiler::PipelineCompilationJob::PrepareJobImpl(v8::internal::Isolate*) [/home/oliver/.nvm/versions/node/v16.9.0/bin/node]
17: 0xd94f5d v8::internal::OptimizedCompilationJob::PrepareJob(v8::internal::Isolate*) [/home/oliver/.nvm/versions/node/v16.9.0/bin/node]
18: 0xd96358  [/home/oliver/.nvm/versions/node/v16.9.0/bin/node]
19: 0xd97e70 v8::internal::Compiler::CompileOptimized(v8::internal::Isolate*, v8::internal::Handle<v8::internal::JSFunction>, v8::internal::ConcurrencyMode, v8::internal::CodeKind) [/home/oliver/.nvm/versions/node/v16.9.0/bin/node]
20: 0x11f4463 v8::internal::Runtime_CompileOptimized_Concurrent(int, unsigned long*, v8::internal::Isolate*) [/home/oliver/.nvm/versions/node/v16.9.0/bin/node]
21: 0x15e67f9  [/home/oliver/.nvm/versions/node/v16.9.0/bin/node]

Additional information

#13804 sounds very related
16.8.0 didn't produce this result and still works as expected.

@targos
Copy link
Member

targos commented Sep 7, 2021

Seen on the CITGM run for 16.9.0, https://ci.nodejs.org/view/Node.js-citgm/job/citgm-smoker/2754
e.g. https://ci.nodejs.org/view/Node.js-citgm/job/citgm-smoker/2754/nodes=ubuntu1804-64/testReport/junit/(root)/citgm/jest_v27_1_0/

I'm sad I did not see that one, because I looked at the result for other machines and it was related to MongoDB process issues as usual...

Here's another run with the same failure against the master branch: https://ci.nodejs.org/view/Node.js-citgm/job/citgm-smoker/2756/nodes=ubuntu1804-64/testReport/junit/(root)/citgm/jest_v27_1_0/
So we can at least exclude the ABI compat patch (that's only in v16.9.0) from the possible causes.

/cc @nodejs/v8

@targos targos added confirmed-bug Issues with confirmed bugs. v8 engine Issues and PRs related to the V8 dependency. labels Sep 7, 2021
@targos
Copy link
Member

targos commented Sep 7, 2021

I think the failing check is from v8/v8@76b9d98

/cc @schuay

@akornatskyy
Copy link

The following can be used to reproduce this bug (in my case it crashes at 140):

describe('holder_map.has_named_interceptor crash', () => {
  for (let i = 0; i < 140; i++) {
    it(`${i}`, () => {
      //
    });
  }
});

Run test:

jest test.js

@targos
Copy link
Member

targos commented Sep 7, 2021

@targos
Copy link
Member

targos commented Sep 7, 2021

Repro without Jest:

const vm = require('vm');

vm.runInNewContext(`

const STATE_SYM = Symbol('JEST_STATE_SYMBOL')
const eventHandlers = [() => {}];
const dispatch = async () => {
  for (const handler of eventHandlers) {
    await handler(this[STATE_SYM]);
  }
};

for (let i = 0; i < 1e6; i++) {
  dispatch();
}

`);

@targos
Copy link
Member

targos commented Sep 7, 2021

I created an upstream bug: v8:12188
Cannot do more from my side.

@SimenB
Copy link
Member

SimenB commented Sep 8, 2021

Is this caused by a v8 update? If so, any chance of reverting it? Or do we think (hope 😀) a fix will land upstream relatively quickly and it'll be cherry picked?

Seen on the CITGM run for 16.9.0, ci.nodejs.org/view/Node.js-citgm/job/citgm-smoker/2754
e.g. ci.nodejs.org/view/Node.js-citgm/job/citgm-smoker/2754/nodes=ubuntu1804-64/testReport/junit/(root)/citgm/jest_v27_1_0

I'm sad I did not see that one, because I looked at the result for other machines and it was related to MongoDB process issues as usual...

We should skip the mongo test if it causes noise hiding real issues. I'll open an issue in CITGM to track

EDIT: nodejs/citgm#875

@schuay
Copy link

schuay commented Sep 8, 2021

Is this caused by a v8 update? If so, any chance of reverting it? Or do we think (hope ) a fix will land upstream relatively quickly and it'll be cherry picked?

I expect we'll fix this upstream in the next couple of days.

yannikinniger added a commit to admin-ch/CovidCertificate-Management-UI that referenced this issue Sep 8, 2021
@targos
Copy link
Member

targos commented Sep 8, 2021

@SimenB In the mean time, would you be open to tweaking the problematic function in jest-circus so that it doesn't trigger this bug (I can help with it)?
Edit: well, actually I can't find a way to prevent this optimization from happening 🙃

yannikinniger added a commit to admin-ch/CovidCertificate-Management-UI that referenced this issue Sep 8, 2021
@SimenB
Copy link
Member

SimenB commented Sep 8, 2021

Happy to land any change that would prevent it or just make it better in general and avoiding the problem altogether 🙂

evoinea added a commit to IPG-Automotive-UK/react-ui that referenced this issue Sep 8, 2021
nodejs/node#40030 Bug found in Node js; removed 16x for now
@matinzd
Copy link
Contributor

matinzd commented Sep 8, 2021

Jest tests are failing on Github actions also for the same reason like reproduction script after using jest.useFakeTimers() before each test case. Downgrading Nodejs ci version to 16.8 worked for me.

beforeEach(() => {
    jest.useFakeTimers()
})

AriPerkkio added a commit to AriPerkkio/eslint-remote-tester that referenced this issue Sep 11, 2021
benjamn added a commit to apollographql/apollo-client that referenced this issue Sep 16, 2021
targos pushed a commit to targos/node that referenced this issue Sep 17, 2021
Original commit message:

    [compiler] Gracefully handle an unsupported situation

    ... by skipping the optimization instead of CHECK-failing.

    Bug: v8:12188
    Change-Id: I6709bf1c55506f3d12886efbfbb9934788cd02ce
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3148132
    Auto-Submit: Georg Neis <[email protected]>
    Commit-Queue: Jakob Gruber <[email protected]>
    Reviewed-by: Jakob Gruber <[email protected]>
    Cr-Commit-Position: refs/heads/main@{#76741}

Refs: v8/v8@9a60704

PR-URL: nodejs#40046
Fixes: nodejs#40030
Reviewed-By: Michaël Zasso <[email protected]>
Reviewed-By: Richard Lau <[email protected]>
targos pushed a commit to targos/node that referenced this issue Sep 29, 2021
Original commit message:

    [compiler] Gracefully handle an unsupported situation

    ... by skipping the optimization instead of CHECK-failing.

    Bug: v8:12188
    Change-Id: I6709bf1c55506f3d12886efbfbb9934788cd02ce
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3148132
    Auto-Submit: Georg Neis <[email protected]>
    Commit-Queue: Jakob Gruber <[email protected]>
    Reviewed-by: Jakob Gruber <[email protected]>
    Cr-Commit-Position: refs/heads/main@{#76741}

Refs: v8/v8@9a60704

PR-URL: nodejs#40046
Fixes: nodejs#40030
Reviewed-By: Michaël Zasso <[email protected]>
Reviewed-By: Richard Lau <[email protected]>
targos pushed a commit to targos/node that referenced this issue Oct 1, 2021
Original commit message:

    [compiler] Gracefully handle an unsupported situation

    ... by skipping the optimization instead of CHECK-failing.

    Bug: v8:12188
    Change-Id: I6709bf1c55506f3d12886efbfbb9934788cd02ce
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3148132
    Auto-Submit: Georg Neis <[email protected]>
    Commit-Queue: Jakob Gruber <[email protected]>
    Reviewed-by: Jakob Gruber <[email protected]>
    Cr-Commit-Position: refs/heads/main@{#76741}

Refs: v8/v8@9a60704

PR-URL: nodejs#40046
Fixes: nodejs#40030
Reviewed-By: Michaël Zasso <[email protected]>
Reviewed-By: Richard Lau <[email protected]>
targos pushed a commit that referenced this issue Oct 2, 2021
Original commit message:

    [compiler] Gracefully handle an unsupported situation

    ... by skipping the optimization instead of CHECK-failing.

    Bug: v8:12188
    Change-Id: I6709bf1c55506f3d12886efbfbb9934788cd02ce
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3148132
    Auto-Submit: Georg Neis <[email protected]>
    Commit-Queue: Jakob Gruber <[email protected]>
    Reviewed-by: Jakob Gruber <[email protected]>
    Cr-Commit-Position: refs/heads/main@{#76741}

Refs: v8/v8@9a60704

PR-URL: #40046
Fixes: #40030
Reviewed-By: Michaël Zasso <[email protected]>
Reviewed-By: Richard Lau <[email protected]>
targos pushed a commit to targos/node that referenced this issue Oct 2, 2021
Original commit message:

    [compiler] Gracefully handle an unsupported situation

    ... by skipping the optimization instead of CHECK-failing.

    Bug: v8:12188
    Change-Id: I6709bf1c55506f3d12886efbfbb9934788cd02ce
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3148132
    Auto-Submit: Georg Neis <[email protected]>
    Commit-Queue: Jakob Gruber <[email protected]>
    Reviewed-by: Jakob Gruber <[email protected]>
    Cr-Commit-Position: refs/heads/main@{#76741}

Refs: v8/v8@9a60704

PR-URL: nodejs#40046
Fixes: nodejs#40030
Reviewed-By: Michaël Zasso <[email protected]>
Reviewed-By: Richard Lau <[email protected]>
targos pushed a commit to targos/node that referenced this issue Oct 4, 2021
Original commit message:

    [compiler] Gracefully handle an unsupported situation

    ... by skipping the optimization instead of CHECK-failing.

    Bug: v8:12188
    Change-Id: I6709bf1c55506f3d12886efbfbb9934788cd02ce
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3148132
    Auto-Submit: Georg Neis <[email protected]>
    Commit-Queue: Jakob Gruber <[email protected]>
    Reviewed-by: Jakob Gruber <[email protected]>
    Cr-Commit-Position: refs/heads/main@{#76741}

Refs: v8/v8@9a60704

PR-URL: nodejs#40046
Fixes: nodejs#40030
Reviewed-By: Michaël Zasso <[email protected]>
Reviewed-By: Richard Lau <[email protected]>
mifi added a commit to transloadit/uppy that referenced this issue Nov 1, 2021
…ad/download without saving to disk (#3159)

* rewrite to async/await

* Only fetch size (HEAD) if needed #3034

* Update packages/@uppy/companion/src/server/controllers/url.js

Co-authored-by: Antoine du Hamel <[email protected]>

* Change HEAD to GET in getURLMeta

and abort request immediately upon response headers received
#3034 (comment)

* fix lint

* fix lint

* cut off length of file names

or else we get
"MetadataTooLarge: Your metadata headers exceed the maximum allowed metadata size" in tus / S3

* try to fix flaky test

* remove iife and cleanup code a bit

* fix lint by reordering code

* rename Uploader to MultipartUploader

* Rewrite Uploader to use fs-capacitor #3098

This allows for upload to start almost immediately without having to first download the file.
And it allows for uploading bigger files, because transloadit assembly will not timeout,
as it will get upload progress events all the time.
No longer need for illusive progress.
Also fix eslint warnings and simplify logic

Still TODO: TUS pause/resume has a bug:
tus/tus-js-client#275

* add comment in dev Dashboard and pull out variable

* fix a bug where remote xhr upload would ignore progress events in the UI

* fix bug where s3 multipart cancel wasn't working

* fix also cancel for xhr

* Rewrite providers to use streams

This removes the need for disk space as data will be buffered in memory and backpressure will be respected
#3098 (comment)
All providers "download" methods will now return a { stream } which can be consumed by uploader.

Also:
- Remove capacitor (no longer needed)
- Change Provider/SearchProvider API to async (Breaking change for custom companion providers)
- Fix the case with unknown length streams (zoom / google drive). Need to be downloaded first
- rewrite controllers deauth-callback, thumbnail, list, logout to async
- getURLMeta: make sure size is never NaN (NaN gets converted to null in JSON.stringify when sent to client but not when used in backend)
- fix purest mock (it wasn't returning statusCode on('response'))
- add missing http mock for "request" for THUMBNAIL_URL and http://url.myendpoint.com/file (these request errors were never caught by tests previously)
- "upload functions with tus protocol" test: move filename checking to new test where size is null. Fix broken expects
- fix some lint

* Implement streamingUpload flag

COMPANION_STREAMING_UPLOAD
Default to false due to backward compatibility
If set to true, will start to upload files at the same time as dowlnoading them, by piping the streams

- Also implement progress for downloading too
- and fix progress duplication logic
- fix test that assumed file was fully downloaded after first progress event

* rearrange validation logic

* add COMPANION_STREAMING_UPLOAD to env.test.sh too

* implement maxFileSize option in companion

for both unknown length and known length downloads

* fix bug

* fix memory leak when non 200 status

streams were being kept

* fix lint

* Add backward-compatibility for companion providers

Implement a new static field "version" on providers, which when not set to 2,
will cause a compatibility layer to be added for supporting old callback style provider api

also fix some eslint and rename some vars

* document new provider API

* remove static as it doesn't work on node 10

* try to fix build issue

* degrade to node 14 in github actions

due to hitting this error: nodejs/node#40030
https://github.com/transloadit/uppy/pull/3159/checks?check_run_id=3544858518

* pull out duplicated logic into reusable function

* fix lint

* make methods private

* re-add unsplash download_location request

got lost in merge

* add try/catch

as suggested #3159 (comment)

* Only set default chunkSize if needed

for being more compliant with previous behavior when streamingUpload = false

* Improve flaky test

Trying to fix this error:

FAIL packages/@uppy/utils/src/delay.test.js
  ● delay › should reject when signal is aborted

    expect(received).toBeLessThan(expected)

    Expected: < 70
    Received:   107

      32 |     const time = Date.now() - start
      33 |     expect(time).toBeGreaterThanOrEqual(30)
    > 34 |     expect(time).toBeLessThan(70)
         |                  ^
      35 |   })
      36 | })
      37 |

      at Object.<anonymous> (packages/@uppy/utils/src/delay.test.js:34:18)

https://github.com/transloadit/uppy/runs/3984613454?check_suite_focus=true

* Apply suggestions from code review

Co-authored-by: Antoine du Hamel <[email protected]>

* fix review feedback & lint

* Apply suggestions from code review

Co-authored-by: Merlijn Vos <[email protected]>

* remove unneeded ts-ignore

* Update packages/@uppy/companion/src/server/controllers/url.js

Co-authored-by: Antoine du Hamel <[email protected]>

* Update packages/@uppy/companion/src/server/Uploader.js

Co-authored-by: Antoine du Hamel <[email protected]>

* reduce nesting

* fix lint

* optimize promisify

#3159 (comment)

* Update packages/@uppy/companion/test/__tests__/uploader.js

Co-authored-by: Antoine du Hamel <[email protected]>

Co-authored-by: Antoine du Hamel <[email protected]>
Co-authored-by: Merlijn Vos <[email protected]>
renawolford6 added a commit to renawolford6/edg-edb-javascript that referenced this issue Nov 10, 2022
- Addjust codec types to support protocol version 0.12.
- Pin node 16 version because the latest node 16 breaks jest 
  nodejs/node#40030
renawolford6 added a commit to renawolford6/edg-edb-javascript that referenced this issue Nov 10, 2022
Unpin node 16 from 16.8 in the github test workflow because a fix for
nodejs/node#40030 has been released.
HeavenFox pushed a commit to docsend/uppy that referenced this issue Jun 27, 2023
…ad/download without saving to disk (transloadit#3159)

* rewrite to async/await

* Only fetch size (HEAD) if needed transloadit#3034

* Update packages/@uppy/companion/src/server/controllers/url.js

Co-authored-by: Antoine du Hamel <[email protected]>

* Change HEAD to GET in getURLMeta

and abort request immediately upon response headers received
transloadit#3034 (comment)

* fix lint

* fix lint

* cut off length of file names

or else we get
"MetadataTooLarge: Your metadata headers exceed the maximum allowed metadata size" in tus / S3

* try to fix flaky test

* remove iife and cleanup code a bit

* fix lint by reordering code

* rename Uploader to MultipartUploader

* Rewrite Uploader to use fs-capacitor transloadit#3098

This allows for upload to start almost immediately without having to first download the file.
And it allows for uploading bigger files, because transloadit assembly will not timeout,
as it will get upload progress events all the time.
No longer need for illusive progress.
Also fix eslint warnings and simplify logic

Still TODO: TUS pause/resume has a bug:
tus/tus-js-client#275

* add comment in dev Dashboard and pull out variable

* fix a bug where remote xhr upload would ignore progress events in the UI

* fix bug where s3 multipart cancel wasn't working

* fix also cancel for xhr

* Rewrite providers to use streams

This removes the need for disk space as data will be buffered in memory and backpressure will be respected
transloadit#3098 (comment)
All providers "download" methods will now return a { stream } which can be consumed by uploader.

Also:
- Remove capacitor (no longer needed)
- Change Provider/SearchProvider API to async (Breaking change for custom companion providers)
- Fix the case with unknown length streams (zoom / google drive). Need to be downloaded first
- rewrite controllers deauth-callback, thumbnail, list, logout to async
- getURLMeta: make sure size is never NaN (NaN gets converted to null in JSON.stringify when sent to client but not when used in backend)
- fix purest mock (it wasn't returning statusCode on('response'))
- add missing http mock for "request" for THUMBNAIL_URL and http://url.myendpoint.com/file (these request errors were never caught by tests previously)
- "upload functions with tus protocol" test: move filename checking to new test where size is null. Fix broken expects
- fix some lint

* Implement streamingUpload flag

COMPANION_STREAMING_UPLOAD
Default to false due to backward compatibility
If set to true, will start to upload files at the same time as dowlnoading them, by piping the streams

- Also implement progress for downloading too
- and fix progress duplication logic
- fix test that assumed file was fully downloaded after first progress event

* rearrange validation logic

* add COMPANION_STREAMING_UPLOAD to env.test.sh too

* implement maxFileSize option in companion

for both unknown length and known length downloads

* fix bug

* fix memory leak when non 200 status

streams were being kept

* fix lint

* Add backward-compatibility for companion providers

Implement a new static field "version" on providers, which when not set to 2,
will cause a compatibility layer to be added for supporting old callback style provider api

also fix some eslint and rename some vars

* document new provider API

* remove static as it doesn't work on node 10

* try to fix build issue

* degrade to node 14 in github actions

due to hitting this error: nodejs/node#40030
https://github.com/transloadit/uppy/pull/3159/checks?check_run_id=3544858518

* pull out duplicated logic into reusable function

* fix lint

* make methods private

* re-add unsplash download_location request

got lost in merge

* add try/catch

as suggested transloadit#3159 (comment)

* Only set default chunkSize if needed

for being more compliant with previous behavior when streamingUpload = false

* Improve flaky test

Trying to fix this error:

FAIL packages/@uppy/utils/src/delay.test.js
  ● delay › should reject when signal is aborted

    expect(received).toBeLessThan(expected)

    Expected: < 70
    Received:   107

      32 |     const time = Date.now() - start
      33 |     expect(time).toBeGreaterThanOrEqual(30)
    > 34 |     expect(time).toBeLessThan(70)
         |                  ^
      35 |   })
      36 | })
      37 |

      at Object.<anonymous> (packages/@uppy/utils/src/delay.test.js:34:18)

https://github.com/transloadit/uppy/runs/3984613454?check_suite_focus=true

* Apply suggestions from code review

Co-authored-by: Antoine du Hamel <[email protected]>

* fix review feedback & lint

* Apply suggestions from code review

Co-authored-by: Merlijn Vos <[email protected]>

* remove unneeded ts-ignore

* Update packages/@uppy/companion/src/server/controllers/url.js

Co-authored-by: Antoine du Hamel <[email protected]>

* Update packages/@uppy/companion/src/server/Uploader.js

Co-authored-by: Antoine du Hamel <[email protected]>

* reduce nesting

* fix lint

* optimize promisify

transloadit#3159 (comment)

* Update packages/@uppy/companion/test/__tests__/uploader.js

Co-authored-by: Antoine du Hamel <[email protected]>

Co-authored-by: Antoine du Hamel <[email protected]>
Co-authored-by: Merlijn Vos <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
confirmed-bug Issues with confirmed bugs. v8 engine Issues and PRs related to the V8 dependency.
Projects
None yet
9 participants