純粋なjsコードはFirefoxで機能しますが、Chromeでは機能しません

チームP

以下のコードはFirefoxで正常に機能し、Chromeではかなりの動作をします。短いループ(数百未満)の場合は機能しますが、大きいループの場合は終了しません。時にはそれはその無限ループから抜け出して完了することができます。

これは、「delete_scope.context」を_scope.context = undefinedに置き換えることで修正できます。

誰かがここで何が起こっているのか詳しく説明できますか?

(function() {
  var _module = function() {
    const _scope = function() {
      var a = 0,
        block = 0;
      var suspend = function() {
        var context = {};
        context.a = a;
        context.block = block;
        context.resume = function() {
          _scope.context = context;
          return _scope();
        }
        _scope.context = context;
        return context;
      }
      var awake = function() {
        context = _scope.context;
        delete _scope.context;
        //_scope.context = undefined;
        a = context.a;
        block = context.block;
      }
      if (_scope.context !== undefined) {
        awake();
      }
      while (true) {
        switch (block) {
          case 0:
            block = 1;
            return suspend();
          case 1:
            block = 0;
            if (a++ > 10000) {
              return;
            }
            continue;
        }
      }
    }
    return _scope();
  }

  var runMod = function() {
    var susp = _module();
    var nSteps = 0;
    while (susp) {
      susp = susp.resume();
      if (!(++nSteps % 1000)) {
        console.log(nSteps, susp);
      }
      if (nSteps > 100000) {
        console.log('aborted')
        break;
      }
    }
    console.log('complete', nSteps);
  }

  runMod();
})()
.as-console-wrapper {
  max-height: 100% !important;
}

https://jsfiddle.net/daborkpw/

チームP

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

JS / CSSコードはChromeで機能しますが、Firefoxでは機能しません

分類Dev

-static-libstdc ++はg ++で機能しますが、純粋なgccでは機能しませんか?

分類Dev

jQueryはFirefoxでは機能しませんが、Chromeでは機能します

分類Dev

JQueryはFirefoxでは機能しませんが、Chromeでは機能します

分類Dev

.sortはFirefoxでは機能しませんが、Chromeでは機能します

分類Dev

AngularjsはChromeでは機能しませんが、Firefoxでは機能します

分類Dev

WebRTCはChromeで機能しますが、Firefoxでは機能しません

分類Dev

JavaScriptはChromeで機能しますが、Firefoxでは機能しません

分類Dev

私のコードはChromeでは機能しませんが、JSFiddleでは正常に機能します

分類Dev

JavascriptコードはChromeで機能しますが、他のブラウザでは機能しません

分類Dev

pseudoelementはFirefoxで機能しますが、Chromeでは機能しません。なぜですか?

分類Dev

Cookieの削除(PHP、JS)はFirefox、Safari、Operaで機能しますが、Chromeでは機能しません

分類Dev

機能はChromeでは正常に機能しますが、Firefoxでは機能しません

分類Dev

CSSルールはIEでは機能しますが、Chrome / Firefoxでは機能しません

分類Dev

PHPフォームはFirefoxで正しく機能しますが、IEとChromeでは機能しません

分類Dev

jQueryはChromeコンソールでは機能しますが、Chrome画面では機能しません

分類Dev

ツールチップはFirefoxで機能しますが、Chromeでは機能しません

分類Dev

CSSアニメーションはChromeで機能しますが、FireFoxでは機能しません

分類Dev

JavaScriptアラートは通常Firefoxで機能しますが、ChromeとExplorerでは機能しません

分類Dev

RTCPeerConnectionメディアストリームはFirefoxで機能しますが、Chromeでは機能しません

分類Dev

水平スクロールはIE11で機能しますが、ChromeとFirefoxでは機能しません

分類Dev

私の単純なコードはexpress-validatorでは機能しません

分類Dev

JSコードは私のページでは機能しますが、フィドルでは機能しません。なぜですか?

分類Dev

addEventListenerはコードペンでは機能しますが、VisualStudioコードでは機能しません

分類Dev

ローカルホストでは、単純なGoogleアナリティクスコードはFireFoxでのみ機能し、IEやChromeでは機能しません-ga.jsの未定義の例外

分類Dev

JavaScript関数はFirefoxではうまく機能しますがChromeでは機能しません

分類Dev

「innerText」はIEでは機能しますが、Firefoxでは機能しません

分類Dev

Cytoscape.js -layout() は Firefox では機能せず、Chrome では機能します

分類Dev

クエリはコンソールでは機能しますが、コードでは機能しません

Related 関連記事

  1. 1

    JS / CSSコードはChromeで機能しますが、Firefoxでは機能しません

  2. 2

    -static-libstdc ++はg ++で機能しますが、純粋なgccでは機能しませんか?

  3. 3

    jQueryはFirefoxでは機能しませんが、Chromeでは機能します

  4. 4

    JQueryはFirefoxでは機能しませんが、Chromeでは機能します

  5. 5

    .sortはFirefoxでは機能しませんが、Chromeでは機能します

  6. 6

    AngularjsはChromeでは機能しませんが、Firefoxでは機能します

  7. 7

    WebRTCはChromeで機能しますが、Firefoxでは機能しません

  8. 8

    JavaScriptはChromeで機能しますが、Firefoxでは機能しません

  9. 9

    私のコードはChromeでは機能しませんが、JSFiddleでは正常に機能します

  10. 10

    JavascriptコードはChromeで機能しますが、他のブラウザでは機能しません

  11. 11

    pseudoelementはFirefoxで機能しますが、Chromeでは機能しません。なぜですか?

  12. 12

    Cookieの削除(PHP、JS)はFirefox、Safari、Operaで機能しますが、Chromeでは機能しません

  13. 13

    機能はChromeでは正常に機能しますが、Firefoxでは機能しません

  14. 14

    CSSルールはIEでは機能しますが、Chrome / Firefoxでは機能しません

  15. 15

    PHPフォームはFirefoxで正しく機能しますが、IEとChromeでは機能しません

  16. 16

    jQueryはChromeコンソールでは機能しますが、Chrome画面では機能しません

  17. 17

    ツールチップはFirefoxで機能しますが、Chromeでは機能しません

  18. 18

    CSSアニメーションはChromeで機能しますが、FireFoxでは機能しません

  19. 19

    JavaScriptアラートは通常Firefoxで機能しますが、ChromeとExplorerでは機能しません

  20. 20

    RTCPeerConnectionメディアストリームはFirefoxで機能しますが、Chromeでは機能しません

  21. 21

    水平スクロールはIE11で機能しますが、ChromeとFirefoxでは機能しません

  22. 22

    私の単純なコードはexpress-validatorでは機能しません

  23. 23

    JSコードは私のページでは機能しますが、フィドルでは機能しません。なぜですか?

  24. 24

    addEventListenerはコードペンでは機能しますが、VisualStudioコードでは機能しません

  25. 25

    ローカルホストでは、単純なGoogleアナリティクスコードはFireFoxでのみ機能し、IEやChromeでは機能しません-ga.jsの未定義の例外

  26. 26

    JavaScript関数はFirefoxではうまく機能しますがChromeでは機能しません

  27. 27

    「innerText」はIEでは機能しますが、Firefoxでは機能しません

  28. 28

    Cytoscape.js -layout() は Firefox では機能せず、Chrome では機能します

  29. 29

    クエリはコンソールでは機能しますが、コードでは機能しません

ホットタグ

アーカイブ