Skip to content

fix: implement Symbol.species of Promise#34162

Closed
JiaLiPassion wants to merge 1 commit intoangular:masterfrom
JiaLiPassion:zone-defineproperty-promise
Closed

fix: implement Symbol.species of Promise#34162
JiaLiPassion wants to merge 1 commit intoangular:masterfrom
JiaLiPassion:zone-defineproperty-promise

Conversation

@JiaLiPassion
Copy link
Copy Markdown
Contributor

@JiaLiPassion JiaLiPassion commented Nov 30, 2019

PR Checklist

Please check if your PR fulfills the following requirements:

PR Type

What kind of change does this PR introduce?

  • Bugfix
  • Feature
  • Code style update (formatting, local variables)
  • Refactoring (no functional changes, no api changes)
  • Build related changes
  • CI related changes
  • Documentation content changes
  • angular.io application / infrastructure changes
  • Other... Please describe:

What is the current behavior?

Issue Number: #34105, #33989

ZoneAwarePromise should pass the following test

var USE_NATIVE = !!function () {
  try {
    // correct subclassing with @@species support
    var promise = $Promise.resolve(1);
    var FakePromise = (promise.constructor = {})[Symbol('species')] = function (exec) {
      exec(empty, empty);
    };
    // unhandled rejections tracking support, NodeJS Promise without it fails @@species test
    return (isNode || typeof PromiseRejectionEvent == 'function') && promise.then(empty) instanceof FakePromise;
  } catch (e) { /* empty */ }
}();

Does this PR introduce a breaking change?

  • Yes
  • No

@JiaLiPassion JiaLiPassion requested a review from a team November 30, 2019 14:21
@JiaLiPassion JiaLiPassion changed the title fix: make sure ZoneAwarePromise not be overwrite by Object.defineProperty WIP: make sure ZoneAwarePromise not be overwrite by Object.defineProperty Nov 30, 2019
@JiaLiPassion JiaLiPassion force-pushed the zone-defineproperty-promise branch from b7bad35 to 91accd3 Compare December 1, 2019 03:28
@JiaLiPassion JiaLiPassion changed the title WIP: make sure ZoneAwarePromise not be overwrite by Object.defineProperty fix: implement Symbol.species of Promise Dec 1, 2019
@JiaLiPassion JiaLiPassion added area: zones Issues related to zone.js and removed state: WIP labels Dec 1, 2019
@ngbot ngbot Bot added this to the needsTriage milestone Dec 1, 2019
@JiaLiPassion JiaLiPassion requested a review from mhevery December 1, 2019 11:00
@mhevery
Copy link
Copy Markdown
Contributor

mhevery commented Dec 2, 2019

presubmit

@TroelsWibergJensen
Copy link
Copy Markdown

@mhevery @JiaLiPassion
Has this been cancelled? It seems that the PR is closed but not merged?
This fix was supposed to handle a general issue on older safari. Is it fixed elsewhere?

@angular-automatic-lock-bot
Copy link
Copy Markdown

This issue has been automatically locked due to inactivity.
Please file a new issue if you are encountering a similar or related problem.

Read more about our automatic conversation locking policy.

This action has been performed automatically by a bot.

@angular-automatic-lock-bot angular-automatic-lock-bot Bot locked and limited conversation to collaborators Jan 18, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

action: merge The PR is ready for merge by the caretaker area: zones Issues related to zone.js cla: yes target: patch This PR is targeted for the next patch release

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants