[Release] Increase to version 1.1.2 (#32)

[BUG] _checkPrototype function loops indefinitely when calling Invoke-WebRequest cmdlet against a docs.microsoft.com webpage #31
This commit is contained in:
Nev 2021-04-16 14:39:18 -07:00 коммит произвёл GitHub
Родитель 8374d999a4
Коммит 0260f32abf
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
9 изменённых файлов: 134 добавлений и 56 удалений

Просмотреть файл

@ -1,5 +1,9 @@
# Releases
## 1.1.2 (Apr 16th, 2021)
- #31 [BUG] _checkPrototype function loops indefinitely when calling Invoke-WebRequest cmdlet against a docs.microsoft.com webpage
## 1.1.1 (Mar 10th, 2021)
### Changelog

112
common/config/rush/npm-shrinkwrap.json сгенерированный
Просмотреть файл

@ -80,9 +80,9 @@
"resolved": "file:projects\\dynamicproto-rollup.tgz"
},
"@types/estree": {
"version": "0.0.46",
"version": "0.0.47",
"from": "@types/estree@*",
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.46.tgz"
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.47.tgz"
},
"@types/fs-extra": {
"version": "8.1.1",
@ -95,14 +95,14 @@
"resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz"
},
"@types/minimatch": {
"version": "3.0.3",
"version": "3.0.4",
"from": "@types/minimatch@*",
"resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz"
"resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.4.tgz"
},
"@types/node": {
"version": "14.14.33",
"version": "14.14.41",
"from": "@types/node@*",
"resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.33.tgz"
"resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.41.tgz"
},
"@types/resolve": {
"version": "0.0.8",
@ -219,9 +219,9 @@
"resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz"
},
"balanced-match": {
"version": "1.0.0",
"from": "balanced-match@>=1.0.0 <2.0.0",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz"
"version": "1.0.2",
"from": "balanced-match@^1.0.0",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz"
},
"base": {
"version": "0.11.2",
@ -597,9 +597,9 @@
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz"
},
"micromatch": {
"version": "4.0.2",
"version": "4.0.4",
"from": "micromatch@^4.0.2",
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz"
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz"
},
"to-regex-range": {
"version": "5.0.1",
@ -730,17 +730,36 @@
"grunt": {
"version": "1.3.0",
"from": "grunt@^1.0.1",
"resolved": "https://registry.npmjs.org/grunt/-/grunt-1.3.0.tgz"
"resolved": "https://registry.npmjs.org/grunt/-/grunt-1.3.0.tgz",
"dependencies": {
"grunt-cli": {
"version": "1.3.2",
"from": "grunt-cli@~1.3.2",
"resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.3.2.tgz",
"dependencies": {
"nopt": {
"version": "4.0.3",
"from": "nopt@~4.0.1",
"resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz"
}
}
}
}
},
"grunt-cli": {
"version": "1.3.2",
"version": "1.4.2",
"from": "grunt-cli@^1.3.2",
"resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.3.2.tgz",
"resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.4.2.tgz",
"dependencies": {
"nopt": {
"version": "4.0.3",
"from": "nopt@~4.0.1",
"resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz"
},
"v8flags": {
"version": "3.2.0",
"from": "v8flags@~3.2.0",
"resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz"
}
}
},
@ -1106,6 +1125,53 @@
}
}
},
"liftup": {
"version": "3.0.1",
"from": "liftup@~3.0.1",
"resolved": "https://registry.npmjs.org/liftup/-/liftup-3.0.1.tgz",
"dependencies": {
"braces": {
"version": "3.0.2",
"from": "braces@^3.0.1",
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz"
},
"fill-range": {
"version": "7.0.1",
"from": "fill-range@^7.0.1",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz"
},
"findup-sync": {
"version": "4.0.0",
"from": "findup-sync@^4.0.0",
"resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-4.0.0.tgz"
},
"is-glob": {
"version": "4.0.1",
"from": "is-glob@^4.0.0",
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz"
},
"is-number": {
"version": "7.0.0",
"from": "is-number@>=7.0.0 <8.0.0",
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz"
},
"micromatch": {
"version": "4.0.4",
"from": "micromatch@^4.0.2",
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz"
},
"rechoir": {
"version": "0.7.0",
"from": "rechoir@^0.7.0",
"resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.0.tgz"
},
"to-regex-range": {
"version": "5.0.1",
"from": "to-regex-range@^5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz"
}
}
},
"lodash": {
"version": "4.17.21",
"from": "lodash@~4.17.19",
@ -1353,9 +1419,9 @@
"resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz"
},
"picomatch": {
"version": "2.2.2",
"from": "picomatch@^2.2.1",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz"
"version": "2.2.3",
"from": "picomatch@^2.2.3",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.3.tgz"
},
"posix-character-classes": {
"version": "0.1.1",
@ -1405,9 +1471,9 @@
}
},
"queue-microtask": {
"version": "1.2.2",
"version": "1.2.3",
"from": "queue-microtask@^1.2.2",
"resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.2.tgz"
"resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz"
},
"readable-stream": {
"version": "2.3.7",
@ -1435,9 +1501,9 @@
"resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz"
},
"repeat-element": {
"version": "1.1.3",
"from": "repeat-element@>=1.1.2 <2.0.0",
"resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz"
"version": "1.1.4",
"from": "repeat-element@^1.1.2",
"resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz"
},
"repeat-string": {
"version": "1.6.1",
@ -1592,7 +1658,7 @@
},
"snapdragon": {
"version": "0.8.2",
"from": "snapdragon@>=0.8.1 <0.9.0",
"from": "snapdragon@^0.8.1",
"resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
"dependencies": {
"define-property": {

Просмотреть файл

@ -2816,13 +2816,13 @@ img {
<a href="#es3ie8-compatibility" id="es3ie8-compatibility" style="color: inherit; text-decoration: none;">
<h2>ES3/IE8 Compatibility</h2>
</a>
<p>As an library there are numerous users which cannot control the browsers that their customers use. As such we need to ensure that this library continues to &quot;work&quot; and does not break the JS execution when loaded by an older browser. While it would be ideal to just not support IE8 and older generation (ES3) browsers there are numerous large customers/users that continue to require pages to &quot;work&quot; and as noted they may or cannot control which browser that their end users choose to use.</p>
<p>As a library there are numerous users which cannot control the browsers that their customers use. As such we need to ensure that this library continues to &quot;work&quot; and does not break the JS execution when loaded by an older browser. While it would be ideal to just not support IE8 and older generation (ES3) browsers there are numerous large customers/users that continue to require pages to &quot;work&quot; and as noted they may or cannot control which browser that their end users choose to use.</p>
<p>As part of enabling ES3/IE8 support we have set the <code>tsconfig.json</code> to ES3 and <code>uglify</code> settings in <code>rollup.config.js</code> transformations to support ie8. This provides a first level of support which blocks anyone from adding unsupported ES3 features to the code and enables the generated javascript to be validily parsed in an ES3+ environment.</p>
<p>Ensuring that the generated code is compatible with ES3 is only the first step, JS parsers will still parse the code when an unsupport core function is used, it will just fail or throw an exception at runtime. Therefore, we also need to require/use polyfil implementations or helper functions to handle those scenarios.</p>
<a href="#es3ie8-features-solutions-workarounds-and-polyfil-style-helper-functions" id="es3ie8-features-solutions-workarounds-and-polyfil-style-helper-functions" style="color: inherit; text-decoration: none;">
<h3>ES3/IE8 Features, Solutions, Workarounds and Polyfil style helper functions</h3>
<a href="#es3ie8-features-solutions-workarounds-and-polyfill-style-helper-functions" id="es3ie8-features-solutions-workarounds-and-polyfill-style-helper-functions" style="color: inherit; text-decoration: none;">
<h3>ES3/IE8 Features, Solutions, Workarounds and Polyfill style helper functions</h3>
</a>
<p>This table does not attempt to include ALL of the ES3 unsuported features, just the currently known functions that where being used at the time or writing. You are welcome to contribute to provide additional helpers, workarounds or documentation of values that should not be used.</p>
<p>This table does not attempt to include ALL of the ES3 unsupported features, just the currently known functions that where being used at the time or writing. You are welcome to contribute to provide additional helpers, workarounds or documentation of values that should not be used.</p>
<table>
<thead>
<tr>
@ -2854,7 +2854,7 @@ img {
<tr>
<td><code>Object.getOwnPropertyNames(obj)</code></td>
<td>Not provided by ES3 and not used</td>
<td>N/A</td>
<td><code>_forEachProp(target:any, callback: (name: string) =&gt; void)</code></td>
</tr>
<tr>
<td><code>Object.getPrototypeOf(obj)</code></td>

Просмотреть файл

@ -2816,13 +2816,13 @@ img {
<a href="#es3ie8-compatibility" id="es3ie8-compatibility" style="color: inherit; text-decoration: none;">
<h2>ES3/IE8 Compatibility</h2>
</a>
<p>As an library there are numerous users which cannot control the browsers that their customers use. As such we need to ensure that this library continues to &quot;work&quot; and does not break the JS execution when loaded by an older browser. While it would be ideal to just not support IE8 and older generation (ES3) browsers there are numerous large customers/users that continue to require pages to &quot;work&quot; and as noted they may or cannot control which browser that their end users choose to use.</p>
<p>As a library there are numerous users which cannot control the browsers that their customers use. As such we need to ensure that this library continues to &quot;work&quot; and does not break the JS execution when loaded by an older browser. While it would be ideal to just not support IE8 and older generation (ES3) browsers there are numerous large customers/users that continue to require pages to &quot;work&quot; and as noted they may or cannot control which browser that their end users choose to use.</p>
<p>As part of enabling ES3/IE8 support we have set the <code>tsconfig.json</code> to ES3 and <code>uglify</code> settings in <code>rollup.config.js</code> transformations to support ie8. This provides a first level of support which blocks anyone from adding unsupported ES3 features to the code and enables the generated javascript to be validily parsed in an ES3+ environment.</p>
<p>Ensuring that the generated code is compatible with ES3 is only the first step, JS parsers will still parse the code when an unsupport core function is used, it will just fail or throw an exception at runtime. Therefore, we also need to require/use polyfil implementations or helper functions to handle those scenarios.</p>
<a href="#es3ie8-features-solutions-workarounds-and-polyfil-style-helper-functions" id="es3ie8-features-solutions-workarounds-and-polyfil-style-helper-functions" style="color: inherit; text-decoration: none;">
<h3>ES3/IE8 Features, Solutions, Workarounds and Polyfil style helper functions</h3>
<a href="#es3ie8-features-solutions-workarounds-and-polyfill-style-helper-functions" id="es3ie8-features-solutions-workarounds-and-polyfill-style-helper-functions" style="color: inherit; text-decoration: none;">
<h3>ES3/IE8 Features, Solutions, Workarounds and Polyfill style helper functions</h3>
</a>
<p>This table does not attempt to include ALL of the ES3 unsuported features, just the currently known functions that where being used at the time or writing. You are welcome to contribute to provide additional helpers, workarounds or documentation of values that should not be used.</p>
<p>This table does not attempt to include ALL of the ES3 unsupported features, just the currently known functions that where being used at the time or writing. You are welcome to contribute to provide additional helpers, workarounds or documentation of values that should not be used.</p>
<table>
<thead>
<tr>
@ -2854,7 +2854,7 @@ img {
<tr>
<td><code>Object.getOwnPropertyNames(obj)</code></td>
<td>Not provided by ES3 and not used</td>
<td>N/A</td>
<td><code>_forEachProp(target:any, callback: (name: string) =&gt; void)</code></td>
</tr>
<tr>
<td><code>Object.getPrototypeOf(obj)</code></td>

Просмотреть файл

@ -2447,7 +2447,7 @@ img {
<div class="tsd-signature tsd-kind-icon">set<wbr>Inst<wbr>Funcs<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">boolean</span></div>
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/microsoft/DynamicProto-JS/blob/71e9685/lib/src/DynamicProto.ts#L454">DynamicProto.ts:454</a></li>
<li>Defined in <a href="https://github.com/microsoft/DynamicProto-JS/blob/8374d99/lib/src/DynamicProto.ts#L462">DynamicProto.ts:462</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
@ -2463,7 +2463,7 @@ img {
<div class="tsd-signature tsd-kind-icon">use<wbr>Base<wbr>Inst<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">boolean</span></div>
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/microsoft/DynamicProto-JS/blob/71e9685/lib/src/DynamicProto.ts#L460">DynamicProto.ts:460</a></li>
<li>Defined in <a href="https://github.com/microsoft/DynamicProto-JS/blob/8374d99/lib/src/DynamicProto.ts#L468">DynamicProto.ts:468</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">

Просмотреть файл

@ -2453,7 +2453,7 @@ img {
<div class="tsd-signature tsd-kind-icon">Dynamic<wbr>Proto<wbr>Delegate&lt;DPType&gt;<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span>theTarget<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">DPType</span>, baseFuncProxy<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">DPType</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">void</span></div>
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/microsoft/DynamicProto-JS/blob/71e9685/lib/src/DynamicProto.ts#L471">DynamicProto.ts:471</a></li>
<li>Defined in <a href="https://github.com/microsoft/DynamicProto-JS/blob/8374d99/lib/src/DynamicProto.ts#L479">DynamicProto.ts:479</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
@ -2516,7 +2516,7 @@ img {
<div class="tsd-signature tsd-kind-icon">Dyn<wbr>Allow<wbr>Inst<wbr>Chk<wbr>Tag<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"_dynInstChk"</span><span class="tsd-signature-symbol"> = DynInstChkTag</span></div>
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/microsoft/DynamicProto-JS/blob/71e9685/lib/src/DynamicProto.ts#L56">DynamicProto.ts:56</a></li>
<li>Defined in <a href="https://github.com/microsoft/DynamicProto-JS/blob/8374d99/lib/src/DynamicProto.ts#L56">DynamicProto.ts:56</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
@ -2532,7 +2532,7 @@ img {
<div class="tsd-signature tsd-kind-icon">Dyn<wbr>Proto<wbr>Default<wbr>Options<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">"_dfOpts"</span><span class="tsd-signature-symbol"> = &quot;_dfOpts&quot;</span></div>
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/microsoft/DynamicProto-JS/blob/71e9685/lib/src/DynamicProto.ts#L61">DynamicProto.ts:61</a></li>
<li>Defined in <a href="https://github.com/microsoft/DynamicProto-JS/blob/8374d99/lib/src/DynamicProto.ts#L61">DynamicProto.ts:61</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
@ -2547,7 +2547,7 @@ img {
<div class="tsd-signature tsd-kind-icon">Obj<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">ObjectConstructor</span><span class="tsd-signature-symbol"> = Object</span></div>
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/microsoft/DynamicProto-JS/blob/71e9685/lib/src/DynamicProto.ts#L87">DynamicProto.ts:87</a></li>
<li>Defined in <a href="https://github.com/microsoft/DynamicProto-JS/blob/8374d99/lib/src/DynamicProto.ts#L87">DynamicProto.ts:87</a></li>
</ul>
</aside>
</section>
@ -2564,7 +2564,7 @@ img {
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/microsoft/DynamicProto-JS/blob/71e9685/lib/src/DynamicProto.ts#L152">DynamicProto.ts:152</a></li>
<li>Defined in <a href="https://github.com/microsoft/DynamicProto-JS/blob/8374d99/lib/src/DynamicProto.ts#L152">DynamicProto.ts:152</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
@ -2616,7 +2616,7 @@ img {
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/microsoft/DynamicProto-JS/blob/71e9685/lib/src/DynamicProto.ts#L287">DynamicProto.ts:287</a></li>
<li>Defined in <a href="https://github.com/microsoft/DynamicProto-JS/blob/8374d99/lib/src/DynamicProto.ts#L287">DynamicProto.ts:287</a></li>
</ul>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
@ -2648,7 +2648,7 @@ img {
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/microsoft/DynamicProto-JS/blob/71e9685/lib/src/DynamicProto.ts#L346">DynamicProto.ts:346</a></li>
<li>Defined in <a href="https://github.com/microsoft/DynamicProto-JS/blob/8374d99/lib/src/DynamicProto.ts#L346">DynamicProto.ts:346</a></li>
</ul>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
@ -2677,7 +2677,7 @@ img {
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/microsoft/DynamicProto-JS/blob/71e9685/lib/src/DynamicProto.ts#L220">DynamicProto.ts:220</a></li>
<li>Defined in <a href="https://github.com/microsoft/DynamicProto-JS/blob/8374d99/lib/src/DynamicProto.ts#L220">DynamicProto.ts:220</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
@ -2714,7 +2714,7 @@ img {
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/microsoft/DynamicProto-JS/blob/71e9685/lib/src/DynamicProto.ts#L525">DynamicProto.ts:525</a></li>
<li>Defined in <a href="https://github.com/microsoft/DynamicProto-JS/blob/8374d99/lib/src/DynamicProto.ts#L533">DynamicProto.ts:533</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
@ -2823,7 +2823,7 @@ img {
<div class="tsd-signature tsd-kind-icon">perf<wbr>Defaults<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">object</span></div>
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/microsoft/DynamicProto-JS/blob/71e9685/lib/src/DynamicProto.ts#L581">DynamicProto.ts:581</a></li>
<li>Defined in <a href="https://github.com/microsoft/DynamicProto-JS/blob/8374d99/lib/src/DynamicProto.ts#L589">DynamicProto.ts:589</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
@ -2839,7 +2839,7 @@ img {
<div class="tsd-signature tsd-kind-icon">set<wbr>Inst<wbr>Funcs<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">true</span><span class="tsd-signature-symbol"> = true</span></div>
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/microsoft/DynamicProto-JS/blob/71e9685/lib/src/DynamicProto.ts#L582">DynamicProto.ts:582</a></li>
<li>Defined in <a href="https://github.com/microsoft/DynamicProto-JS/blob/8374d99/lib/src/DynamicProto.ts#L590">DynamicProto.ts:590</a></li>
</ul>
</aside>
</section>
@ -2849,7 +2849,7 @@ img {
<div class="tsd-signature tsd-kind-icon">use<wbr>Base<wbr>Inst<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">true</span><span class="tsd-signature-symbol"> = true</span></div>
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/microsoft/DynamicProto-JS/blob/71e9685/lib/src/DynamicProto.ts#L583">DynamicProto.ts:583</a></li>
<li>Defined in <a href="https://github.com/microsoft/DynamicProto-JS/blob/8374d99/lib/src/DynamicProto.ts#L591">DynamicProto.ts:591</a></li>
</ul>
</aside>
</section>

Просмотреть файл

@ -1,7 +1,7 @@
{
"name": "@microsoft/dynamicproto-js",
"author": "Microsoft Application Insights Team",
"version": "1.1.1",
"version": "1.1.2",
"description": "Microsoft Dynamic Proto Utility",
"keywords": [
"javascript",

Просмотреть файл

@ -135,7 +135,7 @@ function _getObjProto(target:any) {
}
// target[Constructor] May break if the constructor has been changed or removed
let newProto = target[str__Proto] || target[Prototype] || target[Constructor];
let newProto = target[str__Proto] || target[Prototype] || (target[Constructor] ? target[Constructor][Prototype] : null);
if(newProto) {
return newProto;
}
@ -414,13 +414,21 @@ function _populatePrototype(proto:any, className:string, target:any, baseInstFun
* @ignore
*/
function _checkPrototype(classProto:any, thisTarget:any) {
let thisProto = _getObjProto(thisTarget);
while (thisProto && !_isObjectArrayOrFunctionPrototype(thisProto)) {
if (thisProto === classProto) {
return true;
}
// This method doesn't existing in older browsers (e.g. IE8)
if (_objGetPrototypeOf) {
// As this is primarily a coding time check, don't bother checking if running in IE8 or lower
let visited:any[] = [];
let thisProto = _getObjProto(thisTarget);
while (thisProto && !_isObjectArrayOrFunctionPrototype(thisProto) && !_hasVisited(visited, thisProto)) {
if (thisProto === classProto) {
return true;
}
thisProto = _getObjProto(thisProto);
// This avoids the caller from needing to check whether it's direct base class implements the function or not
// by walking the entire chain it simplifies the usage and issues from upgrading any of the base classes.
visited.push(thisProto);
thisProto = _getObjProto(thisProto);
}
}
return false;

Просмотреть файл

@ -1,7 +1,7 @@
{
"name": "@microsoft/dynamicproto-js",
"description": "Microsoft Dynamic Proto Utility",
"version": "1.1.1",
"version": "1.1.2",
"keywords": [
"javascript",
"dynamic prototype",