Skip to content

Conversation

alan-agius4
Copy link
Collaborator

Resolved an issue where the use of esbuild's inject feature caused incorrect reordering of class structures during bundling. This reordering affected extended classes, as illustrated below:

class e extends Ur {
  constructor(n, r, i) {
    super(n, r, i);
  }
  ngOnDestroy() {
    this.flush();
  }
  static ɵfac = function (r) {
    return new (r || e)(pe(Xe), pe(Ti), pe(Di));
  };
  static ɵprov = oe({ token: e, factory: e.ɵfac });
}

var Ur = class {
  // Class properties and methods omitted for brevity
};

By reducing the reliance on inject, we ensure that the ordering of class properties and methods remains consistent, preserving the expected behavior.

Closes #28941

@alan-agius4 alan-agius4 added action: review The PR is still awaiting reviews from at least one requested reviewer target: patch This PR is targeted for the next patch release labels Nov 25, 2024
@alan-agius4 alan-agius4 requested a review from clydin November 25, 2024 09:57
@alan-agius4 alan-agius4 force-pushed the inject-removal branch 2 times, most recently from 2c41d48 to ed26df5 Compare November 25, 2024 10:10
… code reordering

Resolved an issue where the use of `esbuild`'s `inject` feature caused incorrect reordering of class structures during bundling. This reordering affected extended classes, as illustrated below:

```js
class e extends Ur {
  constructor(n, r, i) {
    super(n, r, i);
  }
  ngOnDestroy() {
    this.flush();
  }
  static ɵfac = function (r) {
    return new (r || e)(pe(Xe), pe(Ti), pe(Di));
  };
  static ɵprov = oe({ token: e, factory: e.ɵfac });
}

var Ur = class {
  // Class properties and methods omitted for brevity
};
```

By reducing the reliance on `inject`, we ensure that the ordering of class properties and methods remains consistent, preserving the expected behavior.

Closes angular#28941
@alan-agius4 alan-agius4 added action: merge The PR is ready for merge by the caretaker and removed action: review The PR is still awaiting reviews from at least one requested reviewer labels Nov 25, 2024
@clydin clydin merged commit 8f9fc59 into angular:main Nov 25, 2024
31 checks passed
@clydin
Copy link
Member

clydin commented Nov 25, 2024

The changes were merged into the following branches: main, 19.0.x

@alan-agius4 alan-agius4 deleted the inject-removal branch November 25, 2024 20:04
@angular-automatic-lock-bot
Copy link

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 Dec 26, 2024
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: @angular/build target: patch This PR is targeted for the next patch release

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Error using experimentalPlatform neutral with provideAnimationsAsync

2 participants