[html5] r8129 - [e] (0) Work in progress for integration with WebIDL (script execution stuff) Af [...]
whatwg at whatwg.org
whatwg at whatwg.org
Mon Aug 5 13:33:18 PDT 2013
Author: ianh
Date: 2013-08-05 13:33:17 -0700 (Mon, 05 Aug 2013)
New Revision: 8129
Modified:
complete.html
index
source
Log:
[e] (0) Work in progress for integration with WebIDL (script execution stuff)
Affected topics: HTML
Modified: complete.html
===================================================================
--- complete.html 2013-08-05 18:15:31 UTC (rev 8128)
+++ complete.html 2013-08-05 20:33:17 UTC (rev 8129)
@@ -71341,34 +71341,58 @@
was most recently pushed onto it is to be <i>popped</i> from the stack, it must be removed.
Entries on this stack can be labeled as <dfn id=candidate-entry-scripts>candidate entry scripts</dfn>.</p>
- <p>When a user agent is to <dfn id=jump-to-a-code-entry-point>jump to a code entry-point</dfn> for a <a href=#concept-script title=concept-script>script</a>, for example to invoke an event listener defined in that
- <a href=#concept-script title=concept-script>script</a>, the user agent must run the following steps:</p>
+ <p>When a user agent is to <dfn id=jump-to-a-code-entry-point>jump to a code entry-point</dfn> for a <a href=#concept-script title=concept-script>script</a>, the user agent must run the following steps:</p>
- <ol><li><p>If the <a href="#script's-global-object">script's global object</a> is a <code><a href=#window>Window</a></code> object whose
- <code><a href=#document>Document</a></code> object is not <a href=#fully-active>fully active</a>, then abort these steps without
- doing anything. The callback is not run.</p>
+ <ol><li><p>Let <var title="">s</var> be the given <a href=#concept-script title=concept-script>script</a>.</li>
- <li><p>If <a href=#concept-bc-noscript title=concept-bc-noscript>scripting is disabled</a> for <a href="#script's-browsing-context">script's
- browsing context</a>, then abort these steps.</p>
+ <li><p><a href=#prepare-to-run-a-script-based-callback>Prepare to run a script-based callback</a> with <var title="">s</var> as both the
+ new incumbent <a href=#concept-script title=concept-script>script</a> and the owner <a href=#concept-script title=concept-script>script</a>. If this returns "do not run" then abort these
+ steps.</li>
- <li><p>Push the <a href=#concept-script title=concept-script>script</a> being invoked onto the <a href=#stack-of-incumbent-scripts>stack of
- incumbent scripts</a>, and label it as a <a href=#candidate-entry-scripts title="candidate entry scripts">candidate entry
- script</a>.</li>
-
<li><p>Make the <a href=#script-execution-environment title="script execution environment">script execution environment</a>
- for the <a href=#concept-script title=concept-script>script</a> execute the <a href=#concept-script title=concept-script>script</a>'s <a href=#code-entry-point>code entry-point</a>.</li>
+ for <var title="">s</var> execute the <a href=#concept-script title=concept-script>script</a>'s <a href=#code-entry-point>code
+ entry-point</a>.</li>
- <li><p>Pop the <a href=#concept-script title=concept-script>script</a> being invoked from the <a href=#stack-of-incumbent-scripts>stack of
- incumbent scripts</a>.</li>
+ <li><p><a href=#clean-up-after-running-a-callback>Clean up after running a callback</a>.</li>
+ </ol><p>The <dfn id=prepare-to-run-a-script-based-callback>prepare to run a script-based callback</dfn> steps are as follows. They are invoked
+ with a new incumbent <a href=#concept-script title=concept-script>script</a> <var title="">s</var> and an owner
+ <a href=#concept-script title=concept-script>script</a> <var title="">o</var>, and return either "run" or "do
+ not run".</p>
+
+ <ol><li><p>If the <a href="#script's-global-object" title="script's global object">global object</a> of <var title="">o</var>
+ is a <code><a href=#window>Window</a></code> object whose <code><a href=#document>Document</a></code> object is not <a href=#fully-active>fully
+ active</a>, then return "do not run" and abort these steps.</p>
+
+ <li><p>If <a href=#concept-bc-noscript title=concept-bc-noscript>scripting is disabled</a> for <var title="">o</var>'s <a href="#script's-browsing-context" title="script's browsing context">browsing context</a>, then return
+ "do not run" and abort these steps.</p>
+
+ <li><p>Push <var title="">s</var> onto the <a href=#stack-of-incumbent-scripts>stack of incumbent scripts</a>, and label it
+ as a <a href=#candidate-entry-scripts title="candidate entry scripts">candidate entry script</a>.</li>
+
+ <li><p>Return "run".</li>
+
+ </ol><p>The steps to <dfn id=prepare-to-run-a-non-script-based-callback>prepare to run a non-script-based callback</dfn> are as follows. They are
+ invoked with a new incumbent <a href=#concept-script title=concept-script>script</a> <var title="">s</var> and,
+ in principle, return either "run" or "do not run" (though in practice they always return
+ "run").</p>
+
+ <ol><li><p>Push <var title="">s</var> onto the <a href=#stack-of-incumbent-scripts>stack of incumbent scripts</a>.</li>
+
+ <li><p>Return "run".</li>
+
+ </ol><p>The steps to <dfn id=clean-up-after-running-a-callback>clean up after running a callback</dfn> are as follows:</p>
+
+ <ol><li><p>Pop the current <a href=#incumbent-script>incumbent script</a> from the <a href=#stack-of-incumbent-scripts>stack of incumbent
+ scripts</a>.</li>
+
<li><p>If the <a href=#stack-of-incumbent-scripts>stack of incumbent scripts</a> is now empty, <a href=#run-the-global-script-clean-up-jobs>run the global script
clean-up jobs</a>. (These cannot run scripts.)</li>
<li><p>If the <a href=#stack-of-incumbent-scripts>stack of incumbent scripts</a> is now empty, <a href=#perform-a-microtask-checkpoint>perform a microtask
- checkpoint</a>. (If this runs scripts, it will result in this algorithm being invoked
- reentrantly.)</li>
+ checkpoint</a>. (If this runs scripts, these algorithms will be invoked reentrantly.)</li>
- </ol><p>This algorithm is not invoked by one script directly calling another, but it can be invoked
+ </ol><p class=note>These algorithms are not invoked by one script directly calling another, but they can be invoked
reentrantly in an indirect manner, e.g. if a script dispatches an event which has event listeners
registered.</p>
@@ -71388,8 +71412,7 @@
stack). If the stack is empty, then there is no <a href=#incumbent-script>incumbent script</a>. It is used in some
security checks.</p>
- <p class=note>The WebIDL specification also manipulates the <a href=#stack-of-incumbent-scripts>stack of incumbent
- scripts</a>. <a href=#refsWEBIDL>[WEBIDL]</a></p>
+ <p class=note>The WebIDL specification also uses these algorithms. <a href=#refsWEBIDL>[WEBIDL]</a></p>
<hr><p>Each <a href=#unit-of-related-similar-origin-browsing-contexts>unit of related similar-origin browsing contexts</a> has a <dfn id=running-mutation-observers>running mutation
observers</dfn> flag, which must initially be false. It is used to prevent reentrant invocation of
Modified: index
===================================================================
--- index 2013-08-05 18:15:31 UTC (rev 8128)
+++ index 2013-08-05 20:33:17 UTC (rev 8129)
@@ -71341,34 +71341,58 @@
was most recently pushed onto it is to be <i>popped</i> from the stack, it must be removed.
Entries on this stack can be labeled as <dfn id=candidate-entry-scripts>candidate entry scripts</dfn>.</p>
- <p>When a user agent is to <dfn id=jump-to-a-code-entry-point>jump to a code entry-point</dfn> for a <a href=#concept-script title=concept-script>script</a>, for example to invoke an event listener defined in that
- <a href=#concept-script title=concept-script>script</a>, the user agent must run the following steps:</p>
+ <p>When a user agent is to <dfn id=jump-to-a-code-entry-point>jump to a code entry-point</dfn> for a <a href=#concept-script title=concept-script>script</a>, the user agent must run the following steps:</p>
- <ol><li><p>If the <a href="#script's-global-object">script's global object</a> is a <code><a href=#window>Window</a></code> object whose
- <code><a href=#document>Document</a></code> object is not <a href=#fully-active>fully active</a>, then abort these steps without
- doing anything. The callback is not run.</p>
+ <ol><li><p>Let <var title="">s</var> be the given <a href=#concept-script title=concept-script>script</a>.</li>
- <li><p>If <a href=#concept-bc-noscript title=concept-bc-noscript>scripting is disabled</a> for <a href="#script's-browsing-context">script's
- browsing context</a>, then abort these steps.</p>
+ <li><p><a href=#prepare-to-run-a-script-based-callback>Prepare to run a script-based callback</a> with <var title="">s</var> as both the
+ new incumbent <a href=#concept-script title=concept-script>script</a> and the owner <a href=#concept-script title=concept-script>script</a>. If this returns "do not run" then abort these
+ steps.</li>
- <li><p>Push the <a href=#concept-script title=concept-script>script</a> being invoked onto the <a href=#stack-of-incumbent-scripts>stack of
- incumbent scripts</a>, and label it as a <a href=#candidate-entry-scripts title="candidate entry scripts">candidate entry
- script</a>.</li>
-
<li><p>Make the <a href=#script-execution-environment title="script execution environment">script execution environment</a>
- for the <a href=#concept-script title=concept-script>script</a> execute the <a href=#concept-script title=concept-script>script</a>'s <a href=#code-entry-point>code entry-point</a>.</li>
+ for <var title="">s</var> execute the <a href=#concept-script title=concept-script>script</a>'s <a href=#code-entry-point>code
+ entry-point</a>.</li>
- <li><p>Pop the <a href=#concept-script title=concept-script>script</a> being invoked from the <a href=#stack-of-incumbent-scripts>stack of
- incumbent scripts</a>.</li>
+ <li><p><a href=#clean-up-after-running-a-callback>Clean up after running a callback</a>.</li>
+ </ol><p>The <dfn id=prepare-to-run-a-script-based-callback>prepare to run a script-based callback</dfn> steps are as follows. They are invoked
+ with a new incumbent <a href=#concept-script title=concept-script>script</a> <var title="">s</var> and an owner
+ <a href=#concept-script title=concept-script>script</a> <var title="">o</var>, and return either "run" or "do
+ not run".</p>
+
+ <ol><li><p>If the <a href="#script's-global-object" title="script's global object">global object</a> of <var title="">o</var>
+ is a <code><a href=#window>Window</a></code> object whose <code><a href=#document>Document</a></code> object is not <a href=#fully-active>fully
+ active</a>, then return "do not run" and abort these steps.</p>
+
+ <li><p>If <a href=#concept-bc-noscript title=concept-bc-noscript>scripting is disabled</a> for <var title="">o</var>'s <a href="#script's-browsing-context" title="script's browsing context">browsing context</a>, then return
+ "do not run" and abort these steps.</p>
+
+ <li><p>Push <var title="">s</var> onto the <a href=#stack-of-incumbent-scripts>stack of incumbent scripts</a>, and label it
+ as a <a href=#candidate-entry-scripts title="candidate entry scripts">candidate entry script</a>.</li>
+
+ <li><p>Return "run".</li>
+
+ </ol><p>The steps to <dfn id=prepare-to-run-a-non-script-based-callback>prepare to run a non-script-based callback</dfn> are as follows. They are
+ invoked with a new incumbent <a href=#concept-script title=concept-script>script</a> <var title="">s</var> and,
+ in principle, return either "run" or "do not run" (though in practice they always return
+ "run").</p>
+
+ <ol><li><p>Push <var title="">s</var> onto the <a href=#stack-of-incumbent-scripts>stack of incumbent scripts</a>.</li>
+
+ <li><p>Return "run".</li>
+
+ </ol><p>The steps to <dfn id=clean-up-after-running-a-callback>clean up after running a callback</dfn> are as follows:</p>
+
+ <ol><li><p>Pop the current <a href=#incumbent-script>incumbent script</a> from the <a href=#stack-of-incumbent-scripts>stack of incumbent
+ scripts</a>.</li>
+
<li><p>If the <a href=#stack-of-incumbent-scripts>stack of incumbent scripts</a> is now empty, <a href=#run-the-global-script-clean-up-jobs>run the global script
clean-up jobs</a>. (These cannot run scripts.)</li>
<li><p>If the <a href=#stack-of-incumbent-scripts>stack of incumbent scripts</a> is now empty, <a href=#perform-a-microtask-checkpoint>perform a microtask
- checkpoint</a>. (If this runs scripts, it will result in this algorithm being invoked
- reentrantly.)</li>
+ checkpoint</a>. (If this runs scripts, these algorithms will be invoked reentrantly.)</li>
- </ol><p>This algorithm is not invoked by one script directly calling another, but it can be invoked
+ </ol><p class=note>These algorithms are not invoked by one script directly calling another, but they can be invoked
reentrantly in an indirect manner, e.g. if a script dispatches an event which has event listeners
registered.</p>
@@ -71388,8 +71412,7 @@
stack). If the stack is empty, then there is no <a href=#incumbent-script>incumbent script</a>. It is used in some
security checks.</p>
- <p class=note>The WebIDL specification also manipulates the <a href=#stack-of-incumbent-scripts>stack of incumbent
- scripts</a>. <a href=#refsWEBIDL>[WEBIDL]</a></p>
+ <p class=note>The WebIDL specification also uses these algorithms. <a href=#refsWEBIDL>[WEBIDL]</a></p>
<hr><p>Each <a href=#unit-of-related-similar-origin-browsing-contexts>unit of related similar-origin browsing contexts</a> has a <dfn id=running-mutation-observers>running mutation
observers</dfn> flag, which must initially be false. It is used to prevent reentrant invocation of
Modified: source
===================================================================
--- source 2013-08-05 18:15:31 UTC (rev 8128)
+++ source 2013-08-05 20:33:17 UTC (rev 8129)
@@ -79770,39 +79770,77 @@
Entries on this stack can be labeled as <dfn>candidate entry scripts</dfn>.</p>
<p>When a user agent is to <dfn>jump to a code entry-point</dfn> for a <span
- title="concept-script">script</span>, for example to invoke an event listener defined in that
- <span title="concept-script">script</span>, the user agent must run the following steps:</p>
+ title="concept-script">script</span>, the user agent must run the following steps:</p>
<ol>
- <li><p>If the <span>script's global object</span> is a <code>Window</code> object whose
- <code>Document</code> object is not <span>fully active</span>, then abort these steps without
- doing anything. The callback is not run.</p>
+ <li><p>Let <var title="">s</var> be the given <span
+ title="concept-script">script</span>.</p></li>
- <li><p>If <span title="concept-bc-noscript">scripting is disabled</span> for <span>script's
- browsing context</span>, then abort these steps.</p>
+ <li><p><span>Prepare to run a script-based callback</span> with <var title="">s</var> as both the
+ new incumbent <span title="concept-script">script</span> and the owner <span
+ title="concept-script">script</span>. If this returns "do not run" then abort these
+ steps.</p></li>
- <li><p>Push the <span title="concept-script">script</span> being invoked onto the <span>stack of
- incumbent scripts</span>, and label it as a <span title="candidate entry scripts">candidate entry
- script</span>.</p></li>
-
<li><p>Make the <span title="script execution environment">script execution environment</span>
- for the <span title="concept-script">script</span> execute the <span
- title="concept-script">script</span>'s <span>code entry-point</span>.</p></li>
+ for <var title="">s</var> execute the <span title="concept-script">script</span>'s <span>code
+ entry-point</span>.</p></li>
- <li><p>Pop the <span title="concept-script">script</span> being invoked from the <span>stack of
- incumbent scripts</span>.</p></li>
+ <li><p><span>Clean up after running a callback</span>.</p></li>
+ </ol>
+
+ <p>The <dfn>prepare to run a script-based callback</dfn> steps are as follows. They are invoked
+ with a new incumbent <span title="concept-script">script</span> <var title="">s</var> and an owner
+ <span title="concept-script">script</span> <var title="">o</var>, and return either "run" or "do
+ not run".</p>
+
+ <ol>
+
+ <li><p>If the <span title="script's global object">global object</span> of <var title="">o</var>
+ is a <code>Window</code> object whose <code>Document</code> object is not <span>fully
+ active</span>, then return "do not run" and abort these steps.</p>
+
+ <li><p>If <span title="concept-bc-noscript">scripting is disabled</span> for <var
+ title="">o</var>'s <span title="script's browsing context">browsing context</span>, then return
+ "do not run" and abort these steps.</p>
+
+ <li><p>Push <var title="">s</var> onto the <span>stack of incumbent scripts</span>, and label it
+ as a <span title="candidate entry scripts">candidate entry script</span>.</p></li>
+
+ <li><p>Return "run".</p></li>
+
+ </ol>
+
+ <p>The steps to <dfn>prepare to run a non-script-based callback</dfn> are as follows. They are
+ invoked with a new incumbent <span title="concept-script">script</span> <var title="">s</var> and,
+ in principle, return either "run" or "do not run" (though in practice they always return
+ "run").</p>
+
+ <ol>
+
+ <li><p>Push <var title="">s</var> onto the <span>stack of incumbent scripts</span>.</p></li>
+
+ <li><p>Return "run".</p></li>
+
+ </ol>
+
+ <p>The steps to <dfn>clean up after running a callback</dfn> are as follows:</p>
+
+ <ol>
+
+ <li><p>Pop the current <span>incumbent script</span> from the <span>stack of incumbent
+ scripts</span>.</p></li>
+
<li><p>If the <span>stack of incumbent scripts</span> is now empty, <span>run the global script
clean-up jobs</span>. (These cannot run scripts.)</p></li>
<li><p>If the <span>stack of incumbent scripts</span> is now empty, <span>perform a microtask
- checkpoint</span>. (If this runs scripts, it will result in this algorithm being invoked
- reentrantly.)</p></li>
+ checkpoint</span>. (If this runs scripts, these algorithms will be invoked reentrantly.)</p></li>
</ol>
- <p>This algorithm is not invoked by one script directly calling another, but it can be invoked
+ <p class="note">These algorithms are not invoked by one script directly calling another, but they can be invoked
reentrantly in an indirect manner, e.g. if a script dispatches an event which has event listeners
registered.</p>
@@ -79824,8 +79862,8 @@
stack). If the stack is empty, then there is no <span>incumbent script</span>. It is used in some
security checks.</p>
- <p class="note">The WebIDL specification also manipulates the <span>stack of incumbent
- scripts</span>. <a href="#refsWEBIDL">[WEBIDL]</a></p>
+ <p class="note">The WebIDL specification also uses these algorithms. <a
+ href="#refsWEBIDL">[WEBIDL]</a></p>
<hr>
More information about the Commit-Watchers
mailing list