-
Notifications
You must be signed in to change notification settings - Fork 165
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
Pull request created for 1.0 vs. 1.1 diffs. #85
Closed
Changes from all commits
Commits
Show all changes
68 commits
Select commit
Hold shift + click to select a range
65e0487
Work around jekyll rendering bug. See #56.
briancavalier 46f7399
Minor updates to promise states wording
domenic b6ba05a
Fix #74. Clarify that all handlers must execute
briancavalier 223b599
Specify the `this` value must not be special. Closes #58.
domenic a75cbbb
Terminology clarification on "thenable" and "exception."
domenic 768bee5
Add a conformant implementations list.
domenic 90833e9
Move "must not change" definition into relevant section.
domenic 9b8722c
Use relative links, now that GitHub supports it.
domenic 9697618
Use fenced code blocks, now that GitHub pages support them.
domenic 0e23223
`undefined` is code, mark it as such.
domenic 7fdf92a
Added Naive Promesse
val1984 0ef0acd
Add promise-as3 and P implementations.
domenic 853f08f
Add the "Thenable Assimilation Procedure". Closes #75.
domenic ad57184
Be less specific about calling `thenable.then`.
domenic 49f5f2f
Add changelog for 1.0 to 1.1.
domenic 0cb1cbc
Added node-fate to Promises/A+ implementations
shanewholloway 78fb508
Updates based on review comments.
domenic 2a55eb7
Add when 2.0.0 to implementations
briancavalier 20fb88d
Merge pull request #90 from briancavalier/add-when-200
briancavalier f180200
Add Covenant to implementations.
domenic d08e9dd
Replace thenable assimilation with resolution.
domenic b468e50
Handle exceptions thrown by getting `x.then`.
domenic be4524d
Spell the resolution procedure as `[[Resolve]]`.
domenic 40168f9
Fix typo.
domenic 0cfdf50
Add Pinky to implementations list.
domenic ca07ea2
added ondras/promise
ondras 983582e
Add ff to implementations list.
domenic df73815
Adding D.js to implementations list.
malko 65eb7d4
Update Covenant's description.
domenic 1e3b123
Consistently use "reason" rather than "rejection reason". See #80
briancavalier ac41301
Similarly, use "value" instead of "fulfillment value". thanks @domenic
briancavalier ae48d4a
Add Shvua to list of implementations.
arieh ee27726
Handle thenables that fulfill with themselves.
domenic def6e2d
Allow vicious cycle detection.
domenic 6c24cf2
Mandate `[[Resolve]](p, p)` to throw a `TypeError`.
domenic 4972d6b
Add more implementations!
domenic dac2212
Encourage usage of the "promises-aplus" keyword.
domenic 38ccd40
Add link to FidPromise implementation.
fidian 417c016
Add Core to list of Promises/A+ implementations
fastner 9f1d439
Adds nbd.js as a conforming implementation
Aintaer e14e654
Add YUI to the list of implementations
juandopazo 653b7ea
Add Pacta to implementations.
mudge 36d9110
Add @domenic as co-editor
briancavalier dcfee2f
Merge pull request #123 from briancavalier/add-domenic-as-coeditor
briancavalier d28d15a
Update YUI link as per @juandopazo's request.
domenic 10d9184
Rewrite the introduction. Closes #106, closes #95.
domenic c6786b6
Update differences document for recent changes and clarity.
domenic 8194fe9
Changelog should reference newer [[Resolve]].
domenic 556f02a
Add @ForbesLindesay and @erights as contributors.
domenic 60feafc
Update cujoJS spelling
briancavalier 7567f36
Merge pull request #117 from promises-aplus/new-intro
briancavalier 46791de
Remove self-fulfilling thenable special case.
domenic 7cbacbe
Clarify infinite vs. circular thenable chains.
domenic 1d44146
Update links to use promisesaplus.com.
domenic 97e3162
Create a section for other-language implementations.
domenic ce2cfa7
Create a section for implementations inside frameworks.
domenic b56f76c
Merge pull request #126 from promises-aplus/implementations-in-other-…
briancavalier 9ba58eb
Constrain onFulfilled and onRejected to not be called too early.
briancavalier 1721033
Add potch/promise.js implementation.
potch 71a86ae
Add tagline to spec.
briancavalier e5c029f
Fix missing space.
domenic 1a4cb7d
Update and improve changelog.
domenic 15410d4
Fix list item spacing for Promise States section.
domenic f35ef37
Enforce a clean stack for `onFulfilled` and `onRejected`.
domenic ffe71f6
Add SHXPromise to implementations
MSNexploder cb472c7
Merge pull request #142 from MSNexploder/patch-1
briancavalier c1f3082
add bluebird to implementations
petkaantonov e5fbe41
Fix #146: note references should be 3.x, not 4.x.
domenic File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
# Promises/A+ Changelog | ||
|
||
## [Version 1.1][] / 2013-??-?? | ||
|
||
### Informative Changes | ||
|
||
These changes help clarify and improve the specification, but should not affect implementation conformance. | ||
|
||
- Improved the introductory text to give a better idea of what promises are, and what the purpose of Promises/A+ is. | ||
- Separated out the concept of a possibly-nonconformant "thenable" from the concept of a conformant "promise." | ||
- Added a definition for "exception." | ||
|
||
### Normative Changes | ||
|
||
These changes impose new requirements on implementations, either to specify a previously-undefined behavior, or to fix something incorrect that the spec allowed in version 1.0. | ||
|
||
- Specified that `onFulfilled` and `onRejected` must be called as functions, with no `this` value. | ||
- Changed the way in which asynchronicity was mandated for `onFulfilled` and `onRejected`, to enforce the important invariant that the stack be clear. In particular, the new wording prevents fulfilling or rejecting a promise from ever synchronously calling the handlers. | ||
- Prohibited implementations from calling `onFulfilled` or `onRejected` before the corresponding promise was respectively fulfilled or rejected. | ||
- Specified the Promise Resolution Procedure, instead of leaving the mechanism for adopting a thenable's state unspecified. | ||
- The recursive nature of the now-specified procedure improves upon the naïve non-recursive suggestion given in version 1.0. | ||
- Edge cases, such as how to deal with a getter for `then`, or synchronous exceptions that could be thrown during the process, are nailed down. | ||
- Self-resolution now causes rejection with a `TypeError`. | ||
- Infinite recursion from circular thenable chains are discussed, optionally allowing this to result in a `TypeError`. | ||
|
||
## [Version 1.0][] / 2012-12-06 | ||
|
||
- Initial release. For differences from its predecessor, the Promises/A specification, see [Differences from Promises/A](differences-from-promises-a.md). | ||
|
||
|
||
[Version 1.0]: https://github.com/promises-aplus/promises-spec/tree/1.0.0 | ||
[Version 1.1]: https://github.com/promises-aplus/promises-spec/tree/1.1.0 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is
then
a free function or can it rely on being called onpromise
? That is, are the following invocations equivalent?promise.then()
versus(promise.then)()
.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think that's implementation dependent. We call it a "method," which generally implies it is attached to
promise
, although it doesn't necessarily have to be.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It may lead to subtle bugs when changing between implementations. Though I suspect the lowest common denominator is it being attached to
promise
, and whether it's a free function doesn't take away from that.Applying
then
to a different promise object is undefined, so we shouldn't have to worry about edge cases there.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I see your point @novemberborn, but I'm also not too concerned about specifying. I think people will tend to call it like
promise.then(...)
since the name "then" lends itself to being very readable that way, and there are (obviously) strong use cases for passing around the promise, but the use cases for simply passing around athen
method aren't as clear (even though that'd work just fine with some implementations)We could clarify with a note suggesting that
then
be called with it's associated promise as thethisArg
, but I don't feel strongly that we need to.