From bc10a15aa16ba1331c0a7880f08784a30be13272 Mon Sep 17 00:00:00 2001 From: Richard Harris Date: Sat, 29 Dec 2018 13:18:19 -0500 Subject: [PATCH] add process to globals whitelist --- src/compile/render-dom/index.ts | 2 +- src/utils/globalWhitelist.ts | 1 + test/runtime/index.js | 6 +++++- .../globals-accessible-directly-process/_config.js | 11 +++++++++++ .../globals-accessible-directly-process/main.html | 1 + test/server-side-rendering/index.js | 4 ++++ 6 files changed, 23 insertions(+), 2 deletions(-) create mode 100644 test/runtime/samples/globals-accessible-directly-process/_config.js create mode 100644 test/runtime/samples/globals-accessible-directly-process/main.html diff --git a/src/compile/render-dom/index.ts b/src/compile/render-dom/index.ts index f2e47532c9..518f0e4208 100644 --- a/src/compile/render-dom/index.ts +++ b/src/compile/render-dom/index.ts @@ -279,7 +279,7 @@ export default function dom( const user_code = component.javascript || ( component.ast.js.length === 0 && filtered_props.length > 0 - ? `let { ${filtered_props.map(x => x.name === x.as ? x.as : `${x.as}: ${x.name}`).join(', ')} } = $$props;` + ? `let { ${filtered_props.map(x => x.name).join(', ')} } = $$props;` : null ); diff --git a/src/utils/globalWhitelist.ts b/src/utils/globalWhitelist.ts index 78cbf0d9df..1c115c372b 100644 --- a/src/utils/globalWhitelist.ts +++ b/src/utils/globalWhitelist.ts @@ -19,6 +19,7 @@ export default new Set([ 'Object', 'parseFloat', 'parseInt', + 'process', 'Promise', 'RegExp', 'Set', diff --git a/test/runtime/index.js b/test/runtime/index.js index a230e8f571..88e2d0fe84 100644 --- a/test/runtime/index.js +++ b/test/runtime/index.js @@ -126,7 +126,9 @@ describe("runtime", () => { global.window = window; - // Put the constructor on window for testing + if (config.before_test) config.before_test(); + + // Put things we need on window for testing window.SvelteComponent = SvelteComponent; const target = window.document.querySelector("main"); @@ -208,6 +210,8 @@ describe("runtime", () => { } flush(); + + if (config.after_test) config.after_test(); }); }); } diff --git a/test/runtime/samples/globals-accessible-directly-process/_config.js b/test/runtime/samples/globals-accessible-directly-process/_config.js new file mode 100644 index 0000000000..99f1025f5c --- /dev/null +++ b/test/runtime/samples/globals-accessible-directly-process/_config.js @@ -0,0 +1,11 @@ +export default { + html: '

Hello world!

', + + before_test() { + process.env.TMP_VAR = 'world'; + }, + + after_test() { + delete process.env.TMP_VAR; + } +}; diff --git a/test/runtime/samples/globals-accessible-directly-process/main.html b/test/runtime/samples/globals-accessible-directly-process/main.html new file mode 100644 index 0000000000..3ce7c67b9d --- /dev/null +++ b/test/runtime/samples/globals-accessible-directly-process/main.html @@ -0,0 +1 @@ +

Hello {process.env.TMP_VAR}!

\ No newline at end of file diff --git a/test/server-side-rendering/index.js b/test/server-side-rendering/index.js index 9d35b208a7..4fd5223b1f 100644 --- a/test/server-side-rendering/index.js +++ b/test/server-side-rendering/index.js @@ -114,6 +114,8 @@ describe("ssr", () => { require("../../register")(compileOptions); try { + if (config.before_test) config.before_test(); + const Component = require(`../runtime/samples/${dir}/main.html`).default; const { html } = Component.render(config.props, { store: (config.store !== true) && config.store @@ -124,6 +126,8 @@ describe("ssr", () => { } else if (config.html) { assert.htmlEqual(html, config.html); } + + if (config.after_test) config.after_test(); } catch (err) { if (config.error) { if (typeof config.error === 'function') {