\hypertarget{md_sfcode_node_modules_jasminewd2_CHANGELOG_autotoc_md13919}{}\doxysection{2.\+2.\+0}\label{md_sfcode_node_modules_jasminewd2_CHANGELOG_autotoc_md13919}
\hypertarget{md_sfcode_node_modules_jasminewd2_CHANGELOG_autotoc_md13920}{}\doxysubsection{Dependencies}\label{md_sfcode_node_modules_jasminewd2_CHANGELOG_autotoc_md13920}
Update selenium-\/webdriverjs to 3.\+5.\+0.\hypertarget{md_sfcode_node_modules_jasminewd2_CHANGELOG_autotoc_md13921}{}\doxysection{2.\+1.\+0}\label{md_sfcode_node_modules_jasminewd2_CHANGELOG_autotoc_md13921}
\hypertarget{md_sfcode_node_modules_jasminewd2_CHANGELOG_autotoc_md13922}{}\doxysubsection{Features}\label{md_sfcode_node_modules_jasminewd2_CHANGELOG_autotoc_md13922}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/jasminewd/commit/41577a5e10420d255fb2ec12aa0ea3a8e72f14ca}{\texttt{ 41577a5}}) support native async functions (node 7.\+6+) (\#87)
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_jasminewd2_CHANGELOG_autotoc_md13923}{}\doxysubsection{Bug Fixes}\label{md_sfcode_node_modules_jasminewd2_CHANGELOG_autotoc_md13923}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/jasminewd/commit/0137d3f2ae96ef6d51d00055d64b5a8103ae83d0}{\texttt{ 0137d3f}}) minor fix to keep stack from original error (\#86)
\item (\href{https://github.com/angular/jasminewd/commit/374f4946972673f86e06a011e20fc039bb73e234}{\texttt{ 374f494}}) Allow to specify a function as a custom matcher\textquotesingle{}s message. (\#29)
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_jasminewd2_CHANGELOG_autotoc_md13924}{}\doxysection{2.\+0.\+0}\label{md_sfcode_node_modules_jasminewd2_CHANGELOG_autotoc_md13924}
(Skipping 1.\+x because {\ttfamily 0.\+0.\+1} was originally accidently published as {\ttfamily 1.\+0.\+0}.)\hypertarget{md_sfcode_node_modules_jasminewd2_CHANGELOG_autotoc_md13925}{}\doxysubsection{Breaking changes}\label{md_sfcode_node_modules_jasminewd2_CHANGELOG_autotoc_md13925}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/fae803cd294e5413523d37bdaa282a9f96cd65a1}{\texttt{ fae803c}}) pass webdriver instance into {\ttfamily init()} instead of using {\ttfamily require()} (\#83)

So where as before you would write\+:
\end{DoxyItemize}


\begin{DoxyCode}{0}
\DoxyCodeLine{require('jasminewd').init(webdriver.promise.controlFlow());}

\end{DoxyCode}
 Now you will write\+:


\begin{DoxyCode}{0}
\DoxyCodeLine{require('jasminewd').init(webdriver.promise.controlFlow(), webdriver);}

\end{DoxyCode}


This removes the dependency on {\ttfamily selenium-\/webdriver} and protects jasminewd from having a different webdriver instance than Protractor, which could be a huge problem if they had different control flow settings.

This is a breaking change because it changes the API for the {\ttfamily init} function.

I also removed the dependency on jasmine, which didn\textquotesingle{}t do anything anyway. Maybe it should have been a peer\+Dependency but those are deprecated.\hypertarget{md_sfcode_node_modules_jasminewd2_CHANGELOG_autotoc_md13926}{}\doxysubsection{Features}\label{md_sfcode_node_modules_jasminewd2_CHANGELOG_autotoc_md13926}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/171cbde22f307bd3cc35c4c1785f171392dca8da}{\texttt{ 171cbde}}) Added types (though you\textquotesingle{}ll have to wait for {\ttfamily @types/jasminewd2} to use them) (\#79)
\item (\href{https://github.com/angular/protractor/commit/27b485019589cd662ee69e7920893ffa50774b97}{\texttt{ 27b4850}}) Support {\ttfamily SELENIUM\+\_\+\+PROMISE\+\_\+\+MANAGER=0} (\#72)

There are three major ways this was done in this change\+:
\begin{DoxyItemize}
\item In {\ttfamily call\+When\+Idle}, if {\ttfamily flow.\+is\+Idle} is not defined, we assume we are working with a {\ttfamily Simple\+Scheduler} instance, and so the flow is effectively idle.
\item In {\ttfamily init\+Jasmine\+Wd}, if {\ttfamily flow.\+reset} is not defined, we assume we are working with a {\ttfamily Simple\+Scheduler} instance, and so don\textquotesingle{}t bother resetting the flow.
\item In {\ttfamily wrap\+In\+Control\+Flow}, we use {\ttfamily flow.\+promise} to create a new promise if possible. Since {\ttfamily new webdriver.\+promise.\+Promise()} would have always made a {\ttfamily Managed\+Promise}, but {\ttfamily flow.\+promise} will do the right thing.
\item In {\ttfamily wrap\+Compare}, we avoid the webdriver library entirely, and never instance any extra promises. Using {\ttfamily webdriver.\+promise.\+when} and {\ttfamily webdriver.\+promise.\+all} could have been a problem if our instance of {\ttfamily webdriver} had the control flow turned on, but another instance somewhere did not (or even the same instance, but just at a different point in time). Instead we use the new {\ttfamily maybe\+Promise} tool, which is a mess but is also exactly what we want.
\item In {\ttfamily specs/$\ast$}, we replace {\ttfamily webdriver.\+promise.\+fulfilled} with {\ttfamily webdriver.\+promise.\+when}.
\item In {\ttfamily specs/$\ast$}, a new version of {\ttfamily adapter\+Spec.\+js} and {\ttfamily error\+Spec.\+js} are created\+: {\ttfamily async\+Await\+Adapter\+Spec.\+ts} and {\ttfamily async\+Await\+Error\+Spec.\+ts}.
\end{DoxyItemize}

I also also fixed a minor bug where we weren\textquotesingle{}t correctly checking for promises inside an array of expected results. Before we had\+:
\end{DoxyItemize}


\begin{DoxyCode}{0}
\DoxyCodeLine{expected = Array.prototype.slice.call(arguments, 0);}
\DoxyCodeLine{}
\DoxyCodeLine{...}
\DoxyCodeLine{}
\DoxyCodeLine{webdriver.promise.isPromise(expected);}

\end{DoxyCode}


I thought about it for a little while, and there\textquotesingle{}s no way that\textquotesingle{}s correct. {\ttfamily expected} is an {\ttfamily Array$<$any$>$}, there\textquotesingle{}s no way it has a {\ttfamily .then} function.

Closes \href{https://github.com/angular/jasminewd/issues/69}{\texttt{ https\+://github.\+com/angular/jasminewd/issues/69}}\hypertarget{md_sfcode_node_modules_jasminewd2_CHANGELOG_autotoc_md13927}{}\doxysubsection{Bug Fixes}\label{md_sfcode_node_modules_jasminewd2_CHANGELOG_autotoc_md13927}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/369a2499189fbcdc541f354cfede49dba9335e6b}{\texttt{ 369a249}}) Don\textquotesingle{}t rely on {\ttfamily webdriver.\+promise} functions (\#82)

While we support {\ttfamily SELENIUM\+\_\+\+PROMISE\+\_\+\+MANAGER=0} already, we rely on {\ttfamily Simple\+Scheduler} and some other utility functions which will be going away after the control flow has been fully deprecated. This commit allows jasminewd to work without those utility functions, and even allows people to pass jasminewd their own custom scheduler implementation.

This does not fix our tests, which will also break when those utility functions go away. See \href{https://github.com/angular/jasminewd/issues/81}{\texttt{ https\+://github.\+com/angular/jasminewd/issues/81}}

Closes \href{https://github.com/angular/jasminewd/issues/80}{\texttt{ https\+://github.\+com/angular/jasminewd/issues/80}}
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_jasminewd2_CHANGELOG_autotoc_md13928}{}\doxysection{0.\+1.\+1}\label{md_sfcode_node_modules_jasminewd2_CHANGELOG_autotoc_md13928}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/jasminewd/commit/cf1cd34a4089b6492160349a10d717c7bcaa2c31}{\texttt{ cf1cd34}}) chore(is\+Promise)\+: revert expose deferred object\textquotesingle{}s promise (\#78)
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_jasminewd2_CHANGELOG_autotoc_md13929}{}\doxysection{0.\+1.\+0}\label{md_sfcode_node_modules_jasminewd2_CHANGELOG_autotoc_md13929}
Release for the selenium-\/webdriver 3.\+0.\+1 upgrade.\hypertarget{md_sfcode_node_modules_jasminewd2_CHANGELOG_autotoc_md13930}{}\doxysection{0.\+1.\+0-\/beta.\+1}\label{md_sfcode_node_modules_jasminewd2_CHANGELOG_autotoc_md13930}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/jasminewd/commit/5fe36a60102b9033180d68b238ab233a25a52393}{\texttt{ 5fe36a6}}) deps(selenium-\/webdriver)\+: upgrade to 3.\+0.\+0 (\#63)

fix test \char`\"{}should wait till the expect to run the flow\char`\"{}
\begin{DoxyItemize}
\item {\ttfamily is\+Pending} exists but it is no longer part of {\ttfamily Managed\+Promise}
\item {\ttfamily is\+Pending} also is no longer exported in {\ttfamily lib/promise.\+js}
\item wrote an {\ttfamily is\+Pending} similar to selenium-\/webdriver in common.\+js require a minimum node version
\item selenium-\/webdriver 3.\+0.\+0 requires node $>$= 6.\+9.\+0
\item update travis test to use node 6
\end{DoxyItemize}
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_jasminewd2_CHANGELOG_autotoc_md13931}{}\doxysection{0.\+1.\+0-\/beta.\+0}\label{md_sfcode_node_modules_jasminewd2_CHANGELOG_autotoc_md13931}
This beta release is for the selenium-\/webdriver 3.\+0.\+0-\/beta-\/3 upgrade.\hypertarget{md_sfcode_node_modules_jasminewd2_CHANGELOG_autotoc_md13932}{}\doxysubsection{Dependencies}\label{md_sfcode_node_modules_jasminewd2_CHANGELOG_autotoc_md13932}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/jasminewd/commit/70c9f62af50018bea6ad326e12bacd9ca03e6ae5}{\texttt{ 70c9f62}}) upgrade(is\+Promise)\+: expose the deferred object\textquotesingle{}s promise (\#58)
\begin{DoxyItemize}
\item is\+Promise checks to see if the input parameter has a then method
\item Deferred class has a promise property and no longer has a then method
\end{DoxyItemize}
\item (\href{https://github.com/angular/jasminewd/commit/88703656b4f8a012a084ba184a4fe473f423a200}{\texttt{ 8870365}}) deps(selenium-\/webdriver)\+: upgrade to 3.\+0.\+0-\/beta-\/3 (\#57)
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_jasminewd2_CHANGELOG_autotoc_md13933}{}\doxysection{0.\+0.\+10}\label{md_sfcode_node_modules_jasminewd2_CHANGELOG_autotoc_md13933}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/jasminewd/commit/ff2e624159344cd83b04c6a6648334ba12e78ea6}{\texttt{ ff2e624}}) fix(webdriver)\+: Pass in the control flow.

BREAKING CHANGE\+: The control flow now needs to be passed in when using jasminewd. This fixes an issue where having multiple versions of selenium-\/webdriver in a package\textquotesingle{}s dependency tree would result in jasminewd and protractor using different control flows. You now have to initialize jasminewd before you can use it, like so\+: `require(\textquotesingle{}jasminewd2').init(webdriver.\+promise.\+control\+Flow());\`{}

See \href{https://github.com/angular/protractor/issues/3505}{\texttt{ https\+://github.\+com/angular/protractor/issues/3505}}
\item (\href{https://github.com/angular/jasminewd/commit/db26b1a1e66477a6f526dac56ecaaa50d2cf4700}{\texttt{ db26b1a}}) fix(stacktrace)\+: do not crash if before\+Each block is rejected without any stated reason (\#45)
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_jasminewd2_CHANGELOG_autotoc_md13934}{}\doxysection{0.\+0.\+9}\label{md_sfcode_node_modules_jasminewd2_CHANGELOG_autotoc_md13934}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/790c81eb0aba880fffbdcb4e834eb2161141620c}{\texttt{ 790c81e}}) fix(expectations)\+: allow custom matchers to return a promise when actual is not a promise

See angular/protractor\#2964
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_jasminewd2_CHANGELOG_autotoc_md13935}{}\doxysection{0.\+0.\+8}\label{md_sfcode_node_modules_jasminewd2_CHANGELOG_autotoc_md13935}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/5abc7457cd73a4a4ba70b3c9ceeadac6d42bbd76}{\texttt{ 5abc745}}) chore(jasmine)\+: update Match\+Factory to allow message as function
\item (\href{https://github.com/angular/protractor/commit/750898c90a1cc1bef09384b60ef6e15adfe734f7}{\texttt{ 750898c}}) fix(expectation)\+: expectations without promises no longer add to task queue

Instead, expectations without promises in either expected or actual are unchanged from the original Jasmine implementation.

See \href{https://github.com/angular/protractor/issues/2894}{\texttt{ https\+://github.\+com/angular/protractor/issues/2894}}
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_jasminewd2_CHANGELOG_autotoc_md13936}{}\doxysection{0.\+0.\+7}\label{md_sfcode_node_modules_jasminewd2_CHANGELOG_autotoc_md13936}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/protractor/commit/55fd11e69c2f1ba8fba9a19a8acccbe933896084}{\texttt{ 55fd11e}}) fix(index)\+: forward it\textquotesingle{}s return value
\item (\href{https://github.com/angular/protractor/commit/f4c30a0023c6ec33b15df762226c3fe8e741d26e}{\texttt{ f4c30a0}}) fix\+: allow empty it functions
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_jasminewd2_CHANGELOG_autotoc_md13937}{}\doxysection{0.\+0.\+6}\label{md_sfcode_node_modules_jasminewd2_CHANGELOG_autotoc_md13937}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/jasminewd/commit/4776c16b9a9f3a9a3de8a8dddc0e051cb32331b4}{\texttt{ 4776c16}}) chore(selenium-\/webdriver)\+: update selenium webdriver to 2.\+47.\+0

Update selenium-\/webdriver to 2.\+47.\+0 from 2.\+45.\+1. This update introduces a convoluted situation where some tests in Proractor\textquotesingle{}s suite would hang -\/ see \href{https://github.com/angular/protractor/issues/2245}{\texttt{ https\+://github.\+com/angular/protractor/issues/2245}}

This change includes a fix for those issues which removes the explicit {\ttfamily flow.\+execute} wrapper around {\ttfamily expect} calls. This appears not to introduce any issues to existing tests.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_jasminewd2_CHANGELOG_autotoc_md13938}{}\doxysection{0.\+0.\+5}\label{md_sfcode_node_modules_jasminewd2_CHANGELOG_autotoc_md13938}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/jasminewd/commit/037c7de7fea4de068734b6fa250d145800863633}{\texttt{ 037c7de}}) chore(dependencies)\+: update Jasmine to 2.\+3.\+1
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_jasminewd2_CHANGELOG_autotoc_md13939}{}\doxysection{0.\+0.\+4}\label{md_sfcode_node_modules_jasminewd2_CHANGELOG_autotoc_md13939}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/jasminewd/commit/8f8b8b39e779559fd3b29b138d7577658b8a64b7}{\texttt{ 8f8b8b3}}) tests(context)\+: test that the {\ttfamily this} variable points to the right thing

Note\+: this means that using {\ttfamily this.\+add\+Matchers} no longer works inside before blocks or specs. It should have been changed to {\ttfamily jamsine.\+add\+Matchers} since the upgrade to Jasmine 2. It was still working by accident up until the previous commit.
\item (\href{https://github.com/angular/jasminewd/commit/c0f13d254966c859db22d020a5390138dbf48e64}{\texttt{ c0f13d2}}) refactor(async\+Test\+Fn)\+: refactor async test wrapping to show more info

Test wrapping for Jasmine 2 now more closely follows the test wrapping for Mocha at \href{https://github.com/SeleniumHQ/selenium/blob/master/javascript/node/selenium-webdriver/testing/index.js}{\texttt{ https\+://github.\+com/\+Selenium\+HQ/selenium/blob/master/javascript/node/selenium-\/webdriver/testing/index.\+js}}

This also adds more information to the task names in the control flow, for easier debugging.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_jasminewd2_CHANGELOG_autotoc_md13940}{}\doxysection{0.\+0.\+3}\label{md_sfcode_node_modules_jasminewd2_CHANGELOG_autotoc_md13940}

\begin{DoxyItemize}
\item (\href{https://github.com/angular/jasminewd/commit/161e1fa48deaa5ea0f485027ea8ae41562864936}{\texttt{ 161e1fa}}) fix(errors)\+: update webdriverjs, fix asynchronous error output

Add some console logging, remove useless info about the last running task in the control flow, and fix error where problems reported from done.\+fail were getting pushed into the following spec.

Closes \#18
\item (\href{https://github.com/angular/jasminewd/commit/fdb03a388d4846952c09fb0ad75a37b46674c750}{\texttt{ fdb03a3}}) docs(readme)\+: add note about jasmine 1 vs jasmine 2
\item (\href{https://github.com/angular/jasminewd/commit/acaec8bdd157e9933d608c66204a52335fb46ee4}{\texttt{ acaec8b}}) feat(index)\+: add jasmine2.\+0 support 
\end{DoxyItemize}