Thanks to visit codestin.com
Credit goes to github.com

Skip to content
This repository was archived by the owner on Jan 11, 2023. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions src/actions/sources.js
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@ async function checkPendingBreakpoint(
const sameSource = sourceUrl && sourceUrl === source.url;

if (sameSource) {
await dispatch(loadSourceText(source));
await dispatch(syncBreakpoint(source.id, pendingBreakpoint));
}
}
Expand Down
5 changes: 5 additions & 0 deletions src/test/mochitest/browser.ini
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,9 @@ support-files =
examples/sum/sum.js
examples/sum/sum.min.js
examples/sum/sum.min.js.map
examples/reload/code_reload_1.js
examples/reload/code_reload_2.js
examples/reload/doc_reload.html
examples/doc-async.html
examples/doc-asm.html
examples/doc-scripts.html
Expand Down Expand Up @@ -53,6 +56,7 @@ support-files =
examples/script-switching-02.js
examples/script-switching-01.js
examples/times2.js
examples/reload/sjs_code_reload.sjs

[browser_dbg-asm.js]
[browser_dbg-async-stepping.js]
Expand Down Expand Up @@ -103,3 +107,4 @@ skip-if = true # Bug 1393121, 1393299
[browser_dbg-tabs.js]
[browser_dbg-toggling-tools.js]
[browser_dbg-wasm-sourcemaps.js]
[browser_dbg-reload.js]
30 changes: 30 additions & 0 deletions src/test/mochitest/browser_dbg-reload.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */

/*
* Test reloading:
* 1. reload the source
* 2. re-sync breakpoints
*/

add_task(async function() {
const dbg = await initDebugger("reload/doc_reload.html", "sjs_code_reload");


const sym = waitForDispatch(dbg, "SET_SYMBOLS");
await selectSource(dbg, "sjs_code_reload")
await sym;

await addBreakpoint(dbg, "sjs_code_reload", 2);

const sync = waitForDispatch(dbg, "SYNC_BREAKPOINT")
await reload(dbg, "sjs_code_reload")
await sync;

const breakpoints = dbg.selectors.getBreakpoints(dbg.getState())
const breakpointList = breakpoints.valueSeq().toJS();
const breakpoint = breakpointList[0];

is(breakpointList.length, 1);
is(breakpoint.location.line, 6);
});
3 changes: 3 additions & 0 deletions src/test/mochitest/examples/reload/code_reload_1.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
function foo(n) {
console.log("yo")
}
7 changes: 7 additions & 0 deletions src/test/mochitest/examples/reload/code_reload_2.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
/*
* comments
*/

function foo() {
console.log("YO")
}
15 changes: 15 additions & 0 deletions src/test/mochitest/examples/reload/doc_reload.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<!-- Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ -->
<!doctype html>

<html>
<script src="sjs_code_reload.sjs"></script>
<head>
<meta charset="utf-8"/>
<title>Empty test page 1</title>
</head>

<body>
</body>

</html>
32 changes: 32 additions & 0 deletions src/test/mochitest/examples/reload/sjs_code_reload.sjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
/* Any copyright is dedicated to the Public Domain.
* http://creativecommons.org/publicdomain/zero/1.0/ */

/* globals getState, setState */
/* exported handleRequest */

"use strict";

function _getUrl(request, counter) {
const { scheme, host, path } = request;

const newPath = path.substr(0, path.lastIndexOf("/") + 1);
const index = counter < 3 ? 1 : 2;
return `${scheme}://${host}${newPath}/code_reload_${index}.js`
}

function handleRequest(request, response) {
response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate");
response.setHeader("Pragma", "no-cache");
response.setHeader("Expires", "0");
response.setHeader("Access-Control-Allow-Origin", "*", false);
response.setHeader("Content-Type", "text/javascript", false);

// Redirect to a different file each time.
let counter = 1 + +getState("counter");

const newUrl = _getUrl(request, counter);

response.setStatusLine(request.httpVersion, 302, "Found");
response.setHeader("Location", newUrl);
setState("counter", "" + counter);
}
5 changes: 3 additions & 2 deletions src/workers/parser/utils/ast.js
Original file line number Diff line number Diff line change
Expand Up @@ -59,9 +59,10 @@ export function getAst(source: Source) {
}

let ast = {};
if (source.contentType == "text/html") {
const { contentType } = source;
if (contentType == "text/html") {
ast = parseScriptTags(source.text, htmlParser) || {};
} else if (source.contentType == "text/javascript") {
} else if (contentType && contentType.includes("javascript")) {
ast = parse(source.text);
}

Expand Down