From f122eb780d48823b7a74783424e8196581ca935d Mon Sep 17 00:00:00 2001 From: Jason Laster Date: Mon, 30 Apr 2018 11:59:07 -0400 Subject: [PATCH] Bug 1457954 - Update Debugger Frontend v45.1. r=jdescottes MozReview-Commit-ID: 2pJD6SVNCdZ --- devtools/client/debugger/new/README.mozilla | 4 +- devtools/client/debugger/new/debugger.js | 87 +++++++++++------- devtools/client/debugger/new/parser-worker.js | 89 ++++++++++++++----- .../mochitest/browser_dbg-babel-scopes.js | 5 +- .../fixtures/imported-bindings/output.js.map | 2 +- .../out-of-order-declarations/output.js.map | 2 +- .../this-arguments-bindings/output.js.map | 2 +- devtools/client/shared/source-map/worker.js | 5 +- 8 files changed, 132 insertions(+), 64 deletions(-) diff --git a/devtools/client/debugger/new/README.mozilla b/devtools/client/debugger/new/README.mozilla index d04f143c2719..37ecac02387e 100644 --- a/devtools/client/debugger/new/README.mozilla +++ b/devtools/client/debugger/new/README.mozilla @@ -1,9 +1,9 @@ This is the debugger.html project output. See https://github.com/devtools-html/debugger.html -Version 45.0 +Version 45.1 -Comparison: https://github.com/devtools-html/debugger.html/compare/release-44...release-45 +Comparison: https://github.com/devtools-html/debugger.html/compare/release-45...release-45.1 Packages: - babel-plugin-transform-es2015-modules-commonjs @6.26.0 diff --git a/devtools/client/debugger/new/debugger.js b/devtools/client/debugger/new/debugger.js index 0b6143f50077..d84b5479da3b 100644 --- a/devtools/client/debugger/new/debugger.js +++ b/devtools/client/debugger/new/debugger.js @@ -22595,7 +22595,9 @@ function findFunctionText(line, source, symbols) { return null; } - const { location: { start, end } } = func; + const { + location: { start, end } + } = func; const lines = source.text.split("\n"); const firstLine = lines[start.line - 1].slice(start.column); const lastLine = lines[end.line - 1].slice(0, end.column); @@ -26035,7 +26037,7 @@ function isReliableScope(scope) { } // As determined by fair dice roll. - return totalBindings === 0 || unknownBindings / totalBindings < 0.9; + return totalBindings === 0 || unknownBindings / totalBindings < 0.1; } function generateClientScope(scopes, originalScopes) { @@ -26202,6 +26204,13 @@ function buildGeneratedBindingList(scopes, generatedAstScopes, thisBinding) { } for (const name of Object.keys(generated.bindings)) { + // If there is no 'this' value, we exclude the binding entirely. + // Otherwise it would pass through as found, but "(unscoped)", causing + // the search logic to stop with a match. + if (name === "this" && !bindings[name]) { + continue; + } + const { refs } = generated.bindings[name]; for (const loc of refs) { acc.push({ @@ -34800,43 +34809,51 @@ async function findGeneratedBindingFromPosition(sourceMaps, client, source, pos, const locationType = pos.type; const generatedRanges = await getGeneratedLocationRanges(source, pos, bindingType, locationType, sourceMaps); - const applicableBindings = filterApplicableBindings(generatedAstBindings, generatedRanges); + let applicableBindings = filterApplicableBindings(generatedAstBindings, generatedRanges); + + // We can adjust this number as we go, but these are a decent start as a + // general heuristic to assume the bindings were bad or just map a chunk of + // whole line or something. + if (applicableBindings.length > 4) { + // Babel's for..of generates at least 3 bindings inside one range for + // block-scoped loop variables, so we shouldn't go below that. + applicableBindings = []; + } let result; if (bindingType === "import") { result = await findGeneratedImportReference(applicableBindings); + + if (!result && pos.type === "decl") { + const importName = pos.importName; + if (typeof importName !== "string") { + // Should never happen, just keeping Flow happy. + return null; + } + + let applicableImportBindings = applicableBindings; + if (generatedRanges.length === 0) { + // If the imported name itself does not map to a useful range, fall back + // to resolving the bindinding using the location of the overall + // import declaration. + const declarationRanges = await getGeneratedLocationRanges(source, pos.declaration, bindingType, locationType, sourceMaps); + applicableImportBindings = filterApplicableBindings(generatedAstBindings, declarationRanges); + + if (applicableImportBindings.length > 10) { + // Import declarations tend to have a large number of bindings for + // for things like 'require' and 'interop', so this number is larger + // than other binding count checks. + applicableImportBindings = []; + } + } + + result = await findGeneratedImportDeclaration(applicableImportBindings, importName); + } } else { result = await findGeneratedReference(applicableBindings); } - if (result) { - return result; - } - - if (bindingType === "import" && pos.type === "decl") { - const importName = pos.importName; - if (typeof importName !== "string") { - // Should never happen, just keeping Flow happy. - return null; - } - - let applicableImportBindings = applicableBindings; - if (generatedRanges.length === 0) { - // If the imported name itself does not map to a useful range, fall back - // to resolving the bindinding using the location of the overall - // import declaration. - const importRanges = await getGeneratedLocationRanges(source, pos.declaration, bindingType, locationType, sourceMaps); - applicableImportBindings = filterApplicableBindings(generatedAstBindings, importRanges); - - if (applicableImportBindings.length === 0) { - return null; - } - } - - return await findGeneratedImportDeclaration(applicableImportBindings, importName); - } - - return null; + return result; } // eslint-disable-next-line max-len @@ -35155,6 +35172,14 @@ async function getGeneratedLocationRanges(source, { const ranges = await sourceMaps.getGeneratedRanges(start, source); const resultRanges = ranges.reduce((acc, mapRange) => { + // Some tooling creates ranges that map a line as a whole, which is useful + // for step-debugging, but can easily lead to finding the wrong binding. + // To avoid these false-positives, we entirely ignore ranges that cover + // full lines. + if (locationType === "ref" && mapRange.columnStart === 0 && mapRange.columnEnd === Infinity) { + return acc; + } + const range = { start: { line: mapRange.line, diff --git a/devtools/client/debugger/new/parser-worker.js b/devtools/client/debugger/new/parser-worker.js index e84f230899e8..eb9f6668ab55 100644 --- a/devtools/client/debugger/new/parser-worker.js +++ b/devtools/client/debugger/new/parser-worker.js @@ -1103,6 +1103,35 @@ function htmlParser({ source, line }) { return parse(source, { startLine: line }); } +const VUE_COMPONENT_START = /^\s* p !== "flow" && p !== "decorators" && p !== "decorators2"), "decorators", "typescript"] + plugins: [...sourceOptions.original.plugins.filter(p => p !== "flow" && p !== "decorators" && p !== "decorators2" && (p !== "jsx" || contentType.match(/typescript-jsx/))), "decorators", "typescript"] }); ast = parse(source.text, options); } @@ -19499,23 +19530,40 @@ const scopeCollectionVisitor = { }; } } else if (t.isClass(node)) { - if (t.isClassDeclaration(node) && t.isIdentifier(node.id)) { - state.declarationBindingIds.add(node.id); - state.scope.bindings[node.id.name] = { - type: "let", - refs: [{ - type: "decl", - start: fromBabelLocation(node.id.loc.start, state.sourceId), - end: fromBabelLocation(node.id.loc.end, state.sourceId), - declaration: { - start: fromBabelLocation(node.loc.start, state.sourceId), - end: fromBabelLocation(node.loc.end, state.sourceId) - } - }] - }; - } - if (t.isIdentifier(node.id)) { + // For decorated classes, the AST considers the first the decorator + // to be the start of the class. For the purposes of mapping class + // declarations however, we really want to look for the "class Foo" + // piece. To achieve that, we estimate the location of the declaration + // instead. + let declStart = node.loc.start; + if (node.decorators && node.decorators.length > 0) { + // Estimate the location of the "class" keyword since it + // is unlikely to be a different line than the class name. + declStart = { + line: node.id.loc.start.line, + column: node.id.loc.start.column - "class ".length + }; + } + + const declaration = { + start: fromBabelLocation(declStart, state.sourceId), + end: fromBabelLocation(node.loc.end, state.sourceId) + }; + + if (t.isClassDeclaration(node)) { + state.declarationBindingIds.add(node.id); + state.scope.bindings[node.id.name] = { + type: "let", + refs: [{ + type: "decl", + start: fromBabelLocation(node.id.loc.start, state.sourceId), + end: fromBabelLocation(node.id.loc.end, state.sourceId), + declaration + }] + }; + } + const scope = pushTempScope(state, "block", "Class", { start: fromBabelLocation(node.loc.start, state.sourceId), end: fromBabelLocation(node.loc.end, state.sourceId) @@ -19528,10 +19576,7 @@ const scopeCollectionVisitor = { type: "decl", start: fromBabelLocation(node.id.loc.start, state.sourceId), end: fromBabelLocation(node.id.loc.end, state.sourceId), - declaration: { - start: fromBabelLocation(node.loc.start, state.sourceId), - end: fromBabelLocation(node.loc.end, state.sourceId) - } + declaration }] }; } diff --git a/devtools/client/debugger/new/test/mochitest/browser_dbg-babel-scopes.js b/devtools/client/debugger/new/test/mochitest/browser_dbg-babel-scopes.js index 0695822b0c59..213118c4f3b8 100644 --- a/devtools/client/debugger/new/test/mochitest/browser_dbg-babel-scopes.js +++ b/devtools/client/debugger/new/test/mochitest/browser_dbg-babel-scopes.js @@ -95,14 +95,13 @@ add_task(async function() { ] ); - // No '' binding here because Babel does not currently general - // the current mappings for 'this' bindings. await breakpointScopes( dbg, "this-arguments-bindings", { line: 8, column: 6 }, [ "arrow", + ["", '"this-value"'], ["argArrow", '"arrow-arg"'], "Block", "arrow()", @@ -116,8 +115,6 @@ add_task(async function() { ] ); - // Babel 6's imports aren't fully mapped, so they show as unavailable. - // The call-based ones work, but the single-identifier ones do not. await breakpointScopes(dbg, "imported-bindings", { line: 20, column: 2 }, [ "Module", ["aDefault", '"a-default"'], diff --git a/devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/imported-bindings/output.js.map b/devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/imported-bindings/output.js.map index 8db937afea6b..7b32f27012a2 100644 --- a/devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/imported-bindings/output.js.map +++ b/devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/imported-bindings/output.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap 10c0c41335992ab33745","webpack:///./fixtures/imported-bindings/input.js","webpack:///./fixtures/imported-bindings/src/mod1.js","webpack:///./fixtures/imported-bindings/src/mod2.js","webpack:///./fixtures/imported-bindings/src/mod3.js","webpack:///./fixtures/imported-bindings/src/mod4.js","webpack:///./fixtures/imported-bindings/src/mod5.js","webpack:///./fixtures/imported-bindings/src/mod6.js","webpack:///./fixtures/imported-bindings/src/mod7.js","webpack:///./fixtures/imported-bindings/src/mod8.js","webpack:///./fixtures/imported-bindings/src/mod9.js","webpack:///./fixtures/imported-bindings/src/mod10.js","webpack:///./fixtures/imported-bindings/src/mod11.js","webpack:///./fixtures/imported-bindings/src/mod12.js","webpack:///./fixtures/imported-bindings/src/optimized-out.js"],"names":["root","example","aNamespace","aNamespace2","aNamespace3","console","log","e","Promise","resolve","then","window","importedBindings","aNamed","original","aNamed2","aNamed3","optimizedOut"],"mappings":";;AAAA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;AAEA;AACA;;;;;;;;;;;;;kBC3CwBA,I;QA0BRC,O,GAAAA,O;;AA5ChB;;;;AACA;;AACA;;AACA;;IAAYC,U;;AAEZ;;;;AACA;;AACA;;AACA;;IAAYC,W;;AAEZ;;;;AACA;;AACA;;AACA;;IAAYC,W;;AAEZ;;;;;;;;AACA;;AAEe,SAASJ,IAAT,GAAgB;AAC7BK,UAAQC,GAAR,CAAY,YAAZ,EAA0BN,IAA1B;;AAEAK,UAAQC,GAAR;AACAD,UAAQC,GAAR;AACAD,UAAQC,GAAR;AACAD,UAAQC,GAAR;AACAD,UAAQC,GAAR,CAAYJ,UAAZ;;AAEA,MAAI;AACF;AACA;AACAG,YAAQC,GAAR,CAAY,oBAAZ;AACAD,YAAQC,GAAR,CAAY,qBAAZ;AACAD,YAAQC,GAAR,CAAY,oBAAZ;AACAD,YAAQC,GAAR,CAAY,qBAAZ;AACAD,YAAQC,GAAR,CAAYH,aAAZ;;AAEAE,YAAQC,GAAR,CAAY,oBAAZ;AACAD,YAAQC,GAAR,CAAY,qBAAZ;AACAD,YAAQC,GAAR,CAAY,oBAAZ;AACAD,YAAQC,GAAR,CAAY,qBAAZ;AACAD,YAAQC,GAAR,CAAY,IAAIF,WAAJ,EAAZ;AACD,GAdD,CAcE,OAAOG,CAAP,EAAU,CAAE;AACf;;AAEM,SAASN,OAAT,GAAkB,CAAE;;AAE3B;AACAO,QAAQC,OAAR,GAAkBC,IAAlB,CAAuB,YAAM;AAC3BC,SAAOC,gBAAP,GAA0BZ,IAA1B;AACD,CAFD,E;;;;;;;;;;;;kBC/Ce,W;;;;;;;;;;;;;ACAR,IAAMa,0BAAS,SAAf,C;;;;;;;;;;;;ACAA,IAAMC,8BAAW,aAAjB,C;;;;;;;;;;;;kBCAQ,W;AACR,IAAMD,0BAAS,SAAf,C;;;;;;;;;;;;kBCDQ,Y;;;;;;;;;;;;;ACAR,IAAME,4BAAU,UAAhB,C;;;;;;;;;;;;ACAA,IAAMD,8BAAW,cAAjB,C;;;;;;;;;;;;kBCAQ,Y;AACR,IAAMD,0BAAS,UAAf,C;;;;;;;;;;;;kBCDQ,Y;;;;;;;;;;;;;ACAR,IAAMG,4BAAU,UAAhB,C;;;;;;;;;;;;ACAA,IAAMF,8BAAW,cAAjB,C;;;;;;;;;;;;kBCAQ,Y;AACR,IAAMD,0BAAS,UAAf,C;;;;;;;;;;;;kBCDiBI,Y;AAAT,SAASA,YAAT,GAAwB,CAAE","file":"fixtures/imported-bindings/output.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 10c0c41335992ab33745","import aDefault from \"./src/mod1\";\nimport { aNamed } from \"./src/mod2\";\nimport { original as anAliased } from \"./src/mod3\";\nimport * as aNamespace from \"./src/mod4\";\n\nimport aDefault2 from \"./src/mod5\";\nimport { aNamed2 } from \"./src/mod6\";\nimport { original as anAliased2 } from \"./src/mod7\";\nimport * as aNamespace2 from \"./src/mod8\";\n\nimport aDefault3 from \"./src/mod9\";\nimport { aNamed3 } from \"./src/mod10\";\nimport { original as anAliased3 } from \"./src/mod11\";\nimport * as aNamespace3 from \"./src/mod12\";\n\nimport optimizedOut from \"./src/optimized-out\";\noptimizedOut();\n\nexport default function root() {\n console.log(\"pause here\", root);\n\n console.log(aDefault);\n console.log(anAliased);\n console.log(aNamed);\n console.log(anAliased);\n console.log(aNamespace);\n\n try {\n // None of these are callable in this code, but we still want to make sure\n // they map properly even if the only reference is in a call expressions.\n console.log(aDefault2());\n console.log(anAliased2());\n console.log(aNamed2());\n console.log(anAliased2());\n console.log(aNamespace2());\n\n console.log(new aDefault3());\n console.log(new anAliased3());\n console.log(new aNamed3());\n console.log(new anAliased3());\n console.log(new aNamespace3());\n } catch (e) {}\n}\n\nexport function example(){}\n\n// The build harness sets the wrong global, so just override it.\nPromise.resolve().then(() => {\n window.importedBindings = root;\n});\n\n\n\n// WEBPACK FOOTER //\n// ./fixtures/imported-bindings/input.js","export default \"a-default\";\n\n\n\n// WEBPACK FOOTER //\n// ./fixtures/imported-bindings/src/mod1.js","export const aNamed = \"a-named\";\n\n\n\n// WEBPACK FOOTER //\n// ./fixtures/imported-bindings/src/mod2.js","export const original = \"an-original\";\n\n\n\n// WEBPACK FOOTER //\n// ./fixtures/imported-bindings/src/mod3.js","export default \"a-default\";\nexport const aNamed = \"a-named\";\n\n\n\n// WEBPACK FOOTER //\n// ./fixtures/imported-bindings/src/mod4.js","export default \"a-default2\";\n\n\n\n// WEBPACK FOOTER //\n// ./fixtures/imported-bindings/src/mod5.js","export const aNamed2 = \"a-named2\";\n\n\n\n// WEBPACK FOOTER //\n// ./fixtures/imported-bindings/src/mod6.js","export const original = \"an-original2\";\n\n\n\n// WEBPACK FOOTER //\n// ./fixtures/imported-bindings/src/mod7.js","export default \"a-default2\";\nexport const aNamed = \"a-named2\";\n\n\n\n// WEBPACK FOOTER //\n// ./fixtures/imported-bindings/src/mod8.js","export default \"a-default3\";\n\n\n\n// WEBPACK FOOTER //\n// ./fixtures/imported-bindings/src/mod9.js","export const aNamed3 = \"a-named3\";\n\n\n\n// WEBPACK FOOTER //\n// ./fixtures/imported-bindings/src/mod10.js","export const original = \"an-original3\";\n\n\n\n// WEBPACK FOOTER //\n// ./fixtures/imported-bindings/src/mod11.js","export default \"a-default3\";\nexport const aNamed = \"a-named3\";\n\n\n\n// WEBPACK FOOTER //\n// ./fixtures/imported-bindings/src/mod12.js","export default function optimizedOut() {}\n\n\n\n// WEBPACK FOOTER //\n// ./fixtures/imported-bindings/src/optimized-out.js"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/bootstrap 10c0c41335992ab33745","webpack:///./fixtures/imported-bindings/input.js","webpack:///./fixtures/imported-bindings/src/mod1.js","webpack:///./fixtures/imported-bindings/src/mod2.js","webpack:///./fixtures/imported-bindings/src/mod3.js","webpack:///./fixtures/imported-bindings/src/mod4.js","webpack:///./fixtures/imported-bindings/src/mod5.js","webpack:///./fixtures/imported-bindings/src/mod6.js","webpack:///./fixtures/imported-bindings/src/mod7.js","webpack:///./fixtures/imported-bindings/src/mod8.js","webpack:///./fixtures/imported-bindings/src/mod9.js","webpack:///./fixtures/imported-bindings/src/mod10.js","webpack:///./fixtures/imported-bindings/src/mod11.js","webpack:///./fixtures/imported-bindings/src/mod12.js","webpack:///./fixtures/imported-bindings/src/optimized-out.js"],"names":["root","example","aNamespace","aNamespace2","aNamespace3","console","log","aDefault","anAliased","aNamed","aDefault3","anAliased3","aNamed3","e","Promise","resolve","then","window","importedBindings","original","aNamed2","optimizedOut"],"mappings":";;AAAA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;AAEA;AACA;;;;;;;;;;;;;kBC3CwBA,I;QA0BRC,O,GAAAA,O;;AA5ChB;;;;AACA;;AACA;;AACA;;IAAYC,U;;AAEZ;;;;AACA;;AACA;;AACA;;IAAYC,W;;AAEZ;;;;AACA;;AACA;;AACA;;IAAYC,W;;AAEZ;;;;;;;;AACA;;AAEe,SAASJ,IAAT,GAAgB;AAC7BK,UAAQC,GAAR,CAAY,YAAZ,EAA0BN,IAA1B;;AAEAK,UAAQC,GAAR,CAAYC,aAAZ;AACAF,UAAQC,GAAR,CAAYE,cAAZ;AACAH,UAAQC,GAAR,CAAYG,YAAZ;AACAJ,UAAQC,GAAR,CAAYE,cAAZ;AACAH,UAAQC,GAAR,CAAYJ,UAAZ;;AAEA,MAAI;AACF;AACA;AACAG,YAAQC,GAAR,CAAY,oBAAZ;AACAD,YAAQC,GAAR,CAAY,qBAAZ;AACAD,YAAQC,GAAR,CAAY,oBAAZ;AACAD,YAAQC,GAAR,CAAY,qBAAZ;AACAD,YAAQC,GAAR,CAAYH,aAAZ;;AAEAE,YAAQC,GAAR,CAAY,IAAII,cAAJ,EAAZ;AACAL,YAAQC,GAAR,CAAY,IAAIK,eAAJ,EAAZ;AACAN,YAAQC,GAAR,CAAY,IAAIM,cAAJ,EAAZ;AACAP,YAAQC,GAAR,CAAY,IAAIK,eAAJ,EAAZ;AACAN,YAAQC,GAAR,CAAY,IAAIF,WAAJ,EAAZ;AACD,GAdD,CAcE,OAAOS,CAAP,EAAU,CAAE;AACf;;AAEM,SAASZ,OAAT,GAAkB,CAAE;;AAE3B;AACAa,QAAQC,OAAR,GAAkBC,IAAlB,CAAuB,YAAM;AAC3BC,SAAOC,gBAAP,GAA0BlB,IAA1B;AACD,CAFD,E;;;;;;;;;;;;kBC/Ce,W;;;;;;;;;;;;;ACAR,IAAMS,0BAAS,SAAf,C;;;;;;;;;;;;ACAA,IAAMU,8BAAW,aAAjB,C;;;;;;;;;;;;kBCAQ,W;AACR,IAAMV,0BAAS,SAAf,C;;;;;;;;;;;;kBCDQ,Y;;;;;;;;;;;;;ACAR,IAAMW,4BAAU,UAAhB,C;;;;;;;;;;;;ACAA,IAAMD,8BAAW,cAAjB,C;;;;;;;;;;;;kBCAQ,Y;AACR,IAAMV,0BAAS,UAAf,C;;;;;;;;;;;;kBCDQ,Y;;;;;;;;;;;;;ACAR,IAAMG,4BAAU,UAAhB,C;;;;;;;;;;;;ACAA,IAAMO,8BAAW,cAAjB,C;;;;;;;;;;;;kBCAQ,Y;AACR,IAAMV,0BAAS,UAAf,C;;;;;;;;;;;;kBCDiBY,Y;AAAT,SAASA,YAAT,GAAwB,CAAE","file":"fixtures/imported-bindings/output.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 10c0c41335992ab33745","import aDefault from \"./src/mod1\";\nimport { aNamed } from \"./src/mod2\";\nimport { original as anAliased } from \"./src/mod3\";\nimport * as aNamespace from \"./src/mod4\";\n\nimport aDefault2 from \"./src/mod5\";\nimport { aNamed2 } from \"./src/mod6\";\nimport { original as anAliased2 } from \"./src/mod7\";\nimport * as aNamespace2 from \"./src/mod8\";\n\nimport aDefault3 from \"./src/mod9\";\nimport { aNamed3 } from \"./src/mod10\";\nimport { original as anAliased3 } from \"./src/mod11\";\nimport * as aNamespace3 from \"./src/mod12\";\n\nimport optimizedOut from \"./src/optimized-out\";\noptimizedOut();\n\nexport default function root() {\n console.log(\"pause here\", root);\n\n console.log(aDefault);\n console.log(anAliased);\n console.log(aNamed);\n console.log(anAliased);\n console.log(aNamespace);\n\n try {\n // None of these are callable in this code, but we still want to make sure\n // they map properly even if the only reference is in a call expressions.\n console.log(aDefault2());\n console.log(anAliased2());\n console.log(aNamed2());\n console.log(anAliased2());\n console.log(aNamespace2());\n\n console.log(new aDefault3());\n console.log(new anAliased3());\n console.log(new aNamed3());\n console.log(new anAliased3());\n console.log(new aNamespace3());\n } catch (e) {}\n}\n\nexport function example(){}\n\n// The build harness sets the wrong global, so just override it.\nPromise.resolve().then(() => {\n window.importedBindings = root;\n});\n\n\n\n// WEBPACK FOOTER //\n// ./fixtures/imported-bindings/input.js","export default \"a-default\";\n\n\n\n// WEBPACK FOOTER //\n// ./fixtures/imported-bindings/src/mod1.js","export const aNamed = \"a-named\";\n\n\n\n// WEBPACK FOOTER //\n// ./fixtures/imported-bindings/src/mod2.js","export const original = \"an-original\";\n\n\n\n// WEBPACK FOOTER //\n// ./fixtures/imported-bindings/src/mod3.js","export default \"a-default\";\nexport const aNamed = \"a-named\";\n\n\n\n// WEBPACK FOOTER //\n// ./fixtures/imported-bindings/src/mod4.js","export default \"a-default2\";\n\n\n\n// WEBPACK FOOTER //\n// ./fixtures/imported-bindings/src/mod5.js","export const aNamed2 = \"a-named2\";\n\n\n\n// WEBPACK FOOTER //\n// ./fixtures/imported-bindings/src/mod6.js","export const original = \"an-original2\";\n\n\n\n// WEBPACK FOOTER //\n// ./fixtures/imported-bindings/src/mod7.js","export default \"a-default2\";\nexport const aNamed = \"a-named2\";\n\n\n\n// WEBPACK FOOTER //\n// ./fixtures/imported-bindings/src/mod8.js","export default \"a-default3\";\n\n\n\n// WEBPACK FOOTER //\n// ./fixtures/imported-bindings/src/mod9.js","export const aNamed3 = \"a-named3\";\n\n\n\n// WEBPACK FOOTER //\n// ./fixtures/imported-bindings/src/mod10.js","export const original = \"an-original3\";\n\n\n\n// WEBPACK FOOTER //\n// ./fixtures/imported-bindings/src/mod11.js","export default \"a-default3\";\nexport const aNamed = \"a-named3\";\n\n\n\n// WEBPACK FOOTER //\n// ./fixtures/imported-bindings/src/mod12.js","export default function optimizedOut() {}\n\n\n\n// WEBPACK FOOTER //\n// ./fixtures/imported-bindings/src/optimized-out.js"],"sourceRoot":""} \ No newline at end of file diff --git a/devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/out-of-order-declarations/output.js.map b/devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/out-of-order-declarations/output.js.map index 36d14fc4e19d..635ff2d51751 100644 --- a/devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/out-of-order-declarations/output.js.map +++ b/devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/out-of-order-declarations/output.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap 4f5a475903003c64fcaa","webpack:///./fixtures/out-of-order-declarations/input.js","webpack:///./fixtures/out-of-order-declarations/src/mod.js"],"names":["root","val","fn","outerFn","outer","callback","console","log","inner"],"mappings":";;AAAA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;AAEA;AACA;;;;;;;;;;;;;kBC3DwBA,I;;AAcxB;;;;;;AAhBA,IAAIC,MAAM,aAAV;;AAEe,SAASD,IAAT,GAAgB;AAC7B,MAAIC,MAAM,cAAV;AACA,MAAIC,KAAK,SAASC,OAAT,CAAiBC,KAAjB,EAAuB,CAAE,CAAlC;;AAEA,WAASC,QAAT,GAAoB;AAClBC,YAAQC,GAAR,CAAY,YAAZ,EAA0BN,GAA1B,iBAAyCC,EAAzC;;AAEA,QAAID,MAAM,aAAV;AACA,aAASC,EAAT,CAAYM,KAAZ,EAAkB,CAAE;AACrB;;AAEDH;AACD;;;;;;;;;;;;;;kBCdc,W","file":"fixtures/out-of-order-declarations/output.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 4f5a475903003c64fcaa","var val = \"outer-value\";\n\nexport default function root() {\n var val = \"middle-value\";\n var fn = function outerFn(outer){};\n\n function callback() {\n console.log(\"pause here\", val, aDefault, fn);\n\n var val = \"inner-value\";\n function fn(inner){};\n }\n\n callback();\n}\n\nimport aDefault from \"./src/mod\";\n\n\n\n// WEBPACK FOOTER //\n// ./fixtures/out-of-order-declarations/input.js","export default \"a-default\";\n\n\n\n// WEBPACK FOOTER //\n// ./fixtures/out-of-order-declarations/src/mod.js"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/bootstrap 4f5a475903003c64fcaa","webpack:///./fixtures/out-of-order-declarations/input.js","webpack:///./fixtures/out-of-order-declarations/src/mod.js"],"names":["root","val","fn","outerFn","outer","callback","console","log","aDefault","inner"],"mappings":";;AAAA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;AAEA;AACA;;;;;;;;;;;;;kBC3DwBA,I;;AAcxB;;;;;;AAhBA,IAAIC,MAAM,aAAV;;AAEe,SAASD,IAAT,GAAgB;AAC7B,MAAIC,MAAM,cAAV;AACA,MAAIC,KAAK,SAASC,OAAT,CAAiBC,KAAjB,EAAuB,CAAE,CAAlC;;AAEA,WAASC,QAAT,GAAoB;AAClBC,YAAQC,GAAR,CAAY,YAAZ,EAA0BN,GAA1B,EAA+BO,aAA/B,EAAyCN,EAAzC;;AAEA,QAAID,MAAM,aAAV;AACA,aAASC,EAAT,CAAYO,KAAZ,EAAkB,CAAE;AACrB;;AAEDJ;AACD;;;;;;;;;;;;;;kBCdc,W","file":"fixtures/out-of-order-declarations/output.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 4f5a475903003c64fcaa","var val = \"outer-value\";\n\nexport default function root() {\n var val = \"middle-value\";\n var fn = function outerFn(outer){};\n\n function callback() {\n console.log(\"pause here\", val, aDefault, fn);\n\n var val = \"inner-value\";\n function fn(inner){};\n }\n\n callback();\n}\n\nimport aDefault from \"./src/mod\";\n\n\n\n// WEBPACK FOOTER //\n// ./fixtures/out-of-order-declarations/input.js","export default \"a-default\";\n\n\n\n// WEBPACK FOOTER //\n// ./fixtures/out-of-order-declarations/src/mod.js"],"sourceRoot":""} \ No newline at end of file diff --git a/devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/this-arguments-bindings/output.js.map b/devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/this-arguments-bindings/output.js.map index fa5a8ab3d185..dbcf21e2c2b5 100644 --- a/devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/this-arguments-bindings/output.js.map +++ b/devtools/client/debugger/new/test/mochitest/examples/babel/fixtures/this-arguments-bindings/output.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap 864a96309d7d728f6b47","webpack:///./fixtures/this-arguments-bindings/input.js"],"names":["root","fn","arg","console","log","arguments","arrow","call"],"mappings":";;AAAA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;AAEA;AACA;;;;;;;;;;;;;kBC7DwBA,I;AAAT,SAASA,IAAT,GAAgB;AAC7B,WAASC,EAAT,CAAYC,GAAZ,EAAiB;AAAA;AAAA;;AACfC,YAAQC,GAAR,CAAY,IAAZ,EAAkBC,SAAlB;AACAF,YAAQC,GAAR,CAAY,YAAZ,EAA0BH,EAA1B,EAA8BD,IAA9B;;AAEA,QAAMM,QAAQ,SAARA,KAAQ,WAAY;AACxBH,cAAQC,GAAR;AACAD,cAAQC,GAAR,CAAY,YAAZ,EAA0BH,EAA1B,EAA8BD,IAA9B;AACD,KAHD;AAIAM,UAAM,WAAN;AACD;;AAEDL,KAAGM,IAAH,CAAQ,YAAR,EAAsB,WAAtB;AACD","file":"fixtures/this-arguments-bindings/output.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 864a96309d7d728f6b47","export default function root() {\n function fn(arg) {\n console.log(this, arguments);\n console.log(\"pause here\", fn, root);\n\n const arrow = argArrow => {\n console.log(this, arguments);\n console.log(\"pause here\", fn, root);\n };\n arrow(\"arrow-arg\");\n }\n\n fn.call(\"this-value\", \"arg-value\");\n}\n\n\n\n// WEBPACK FOOTER //\n// ./fixtures/this-arguments-bindings/input.js"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/bootstrap 864a96309d7d728f6b47","webpack:///./fixtures/this-arguments-bindings/input.js"],"names":["root","fn","arg","console","log","arguments","arrow","call"],"mappings":";;AAAA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;AAEA;AACA;;;;;;;;;;;;;kBC7DwBA,I;AAAT,SAASA,IAAT,GAAgB;AAC7B,WAASC,EAAT,CAAYC,GAAZ,EAAiB;AAAA;AAAA;;AACfC,YAAQC,GAAR,CAAY,IAAZ,EAAkBC,SAAlB;AACAF,YAAQC,GAAR,CAAY,YAAZ,EAA0BH,EAA1B,EAA8BD,IAA9B;;AAEA,QAAMM,QAAQ,SAARA,KAAQ,WAAY;AACxBH,cAAQC,GAAR,CAAY,KAAZ,EAAkBC,UAAlB;AACAF,cAAQC,GAAR,CAAY,YAAZ,EAA0BH,EAA1B,EAA8BD,IAA9B;AACD,KAHD;AAIAM,UAAM,WAAN;AACD;;AAEDL,KAAGM,IAAH,CAAQ,YAAR,EAAsB,WAAtB;AACD","file":"fixtures/this-arguments-bindings/output.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 864a96309d7d728f6b47","export default function root() {\n function fn(arg) {\n console.log(this, arguments);\n console.log(\"pause here\", fn, root);\n\n const arrow = argArrow => {\n console.log(this, arguments);\n console.log(\"pause here\", fn, root);\n };\n arrow(\"arrow-arg\");\n }\n\n fn.call(\"this-value\", \"arg-value\");\n}\n\n\n\n// WEBPACK FOOTER //\n// ./fixtures/this-arguments-bindings/input.js"],"sourceRoot":""} \ No newline at end of file diff --git a/devtools/client/shared/source-map/worker.js b/devtools/client/shared/source-map/worker.js index 14ab6ef537d1..e95904bcfca8 100644 --- a/devtools/client/shared/source-map/worker.js +++ b/devtools/client/shared/source-map/worker.js @@ -670,6 +670,7 @@ const contentMap = { "ts": "text/typescript", "tsx": "text/typescript-jsx", "jsx": "text/jsx", + vue: "text/vue", "coffee": "text/coffeescript", "elm": "text/elm", "cljs": "text/x-clojure" @@ -3563,7 +3564,7 @@ IndexedSourceMapConsumer.prototype.sourceContentFor = * and an object is returned with the following properties: * * - line: The line number in the generated source, or null. The - * line number is 1-based. + * line number is 1-based. * - column: The column number in the generated source, or null. * The column number is 0-based. */ @@ -4414,4 +4415,4 @@ module.exports = { fetchSourceMap }; /***/ }) /******/ ]); -}); \ No newline at end of file +});