diff --git a/src/generators/Generator.ts b/src/generators/Generator.ts index 474b32a9c0..7565336abb 100644 --- a/src/generators/Generator.ts +++ b/src/generators/Generator.ts @@ -369,31 +369,13 @@ export default class Generator { }) }; - Object.getOwnPropertyNames(String.prototype).forEach(name => { - const descriptor = Object.getOwnPropertyDescriptor(String.prototype, name); - if (typeof descriptor.value === 'function') { - Object.defineProperty(css, name, { - value: (...args) => { - return css.code === null - ? null - : css.code[name].call(css.code, ...args); - } - }); - } - }); - this.stats.stop('compile'); return { ast: this.ast, js, css, - stats: this.stats.render(this), - - // TODO deprecate - code: js.code, - map: js.map, - cssMap: css.map + stats: this.stats.render(this) }; } diff --git a/src/index.ts b/src/index.ts index 16081ea8b4..d13d568069 100644 --- a/src/index.ts +++ b/src/index.ts @@ -147,12 +147,12 @@ export function create(source: string, _options: CompileOptions = {}) { const compiled = compile(source, _options); - if (!compiled || !compiled.code) { + if (!compiled || !compiled.js.code) { return; } try { - return (0, eval)(compiled.code); + return (0, eval)(compiled.js.code); } catch (err) { if (_options.onerror) { _options.onerror(err); diff --git a/src/server-side-rendering/register.js b/src/server-side-rendering/register.js index 7940a2c487..75b10d29f9 100644 --- a/src/server-side-rendering/register.js +++ b/src/server-side-rendering/register.js @@ -37,9 +37,9 @@ function _register(extension) { generate: 'ssr' }); - const {code} = compile(fs.readFileSync(filename, 'utf-8'), options); + const { js } = compile(fs.readFileSync(filename, 'utf-8'), options); - return module._compile(code, filename); + return module._compile(js.code, filename); }; } diff --git a/test/css/index.js b/test/css/index.js index a59f132660..8af76f61c1 100644 --- a/test/css/index.js +++ b/test/css/index.js @@ -78,10 +78,10 @@ describe('css', () => { ); // check the code is valid - checkCodeIsValid(dom.code); - checkCodeIsValid(ssr.code); + checkCodeIsValid(dom.js.code); + checkCodeIsValid(ssr.js.code); - assert.equal(dom.css.toString(), ssr.css.toString()); + assert.equal(dom.css.code, ssr.css.code); assert.deepEqual( domWarnings.map(normalizeWarning), @@ -89,13 +89,13 @@ describe('css', () => { ); assert.deepEqual(domWarnings.map(normalizeWarning), expectedWarnings); - fs.writeFileSync(`test/css/samples/${dir}/_actual.css`, dom.css); + fs.writeFileSync(`test/css/samples/${dir}/_actual.css`, dom.css.code); const expected = { html: read(`test/css/samples/${dir}/expected.html`), css: read(`test/css/samples/${dir}/expected.css`) }; - assert.equal(dom.css.replace(/svelte(-ref)?-[a-z0-9]+/g, (m, $1) => $1 ? m : 'svelte-xyz'), expected.css); + assert.equal(dom.css.code.replace(/svelte(-ref)?-[a-z0-9]+/g, (m, $1) => $1 ? m : 'svelte-xyz'), expected.css); // verify that the right elements have scoping selectors if (expected.html !== null) { @@ -104,7 +104,7 @@ describe('css', () => { // dom try { const Component = eval( - `(function () { ${dom.code}; return SvelteComponent; }())` + `(function () { ${dom.js.code}; return SvelteComponent; }())` ); const target = window.document.querySelector('main'); @@ -120,14 +120,14 @@ describe('css', () => { window.document.head.innerHTML = ''; // remove added styles } catch (err) { - console.log(dom.code); + console.log(dom.js.code); throw err; } // ssr try { const component = eval( - `(function () { ${ssr.code}; return SvelteComponent; }())` + `(function () { ${ssr.js.code}; return SvelteComponent; }())` ); assert.equal( @@ -138,7 +138,7 @@ describe('css', () => { normalizeHtml(window, expected.html) ); } catch (err) { - console.log(ssr.code); + console.log(ssr.js.code); throw err; } } diff --git a/test/custom-elements/index.js b/test/custom-elements/index.js index ab101dc873..7675e0c188 100644 --- a/test/custom-elements/index.js +++ b/test/custom-elements/index.js @@ -70,10 +70,7 @@ describe('custom-elements', function() { dev: config.dev }); - return { - code: compiled.code, - map: compiled.map - }; + return compiled.js; } } }, diff --git a/test/formats/index.js b/test/formats/index.js index 2a8b47df53..91b2d1dc33 100644 --- a/test/formats/index.js +++ b/test/formats/index.js @@ -98,12 +98,12 @@ describe("formats", () => { `; - const { code } = svelte.compile(source, { + const { js } = svelte.compile(source, { format: "amd", amd: { id: "foo" } }); - return testAmd(code, "foo", { answer: 42 }, `
42
`); + return testAmd(js.code, "foo", { answer: 42 }, `
42
`); }); }); @@ -123,11 +123,11 @@ describe("formats", () => { `; - const { code } = svelte.compile(source, { + const { js } = svelte.compile(source, { format: "cjs" }); - return testCjs(code, { answer: 42 }, `
42
`); + return testCjs(js.code, { answer: 42 }, `
42
`); }); }); @@ -147,7 +147,7 @@ describe("formats", () => { `; - const { code } = svelte.compile(source, { + const { js } = svelte.compile(source, { format: "iife", name: "Foo", globals: { @@ -155,7 +155,7 @@ describe("formats", () => { } }); - return testIife(code, "Foo", { answer: 42 }, `
42
`); + return testIife(js.code, "Foo", { answer: 42 }, `
42
`); }); it('requires options.name', () => { @@ -221,7 +221,7 @@ describe("formats", () => { `; - const { code } = svelte.compile(source, { + const { js } = svelte.compile(source, { format: "umd", name: "Foo", globals: { @@ -232,9 +232,9 @@ describe("formats", () => { } }); - testAmd(code, "foo", { answer: 42 }, `
42
`); - testCjs(code, { answer: 42 }, `
42
`); - testIife(code, "Foo", { answer: 42 }, `
42
`); + testAmd(js.code, "foo", { answer: 42 }, `
42
`); + testCjs(js.code, { answer: 42 }, `
42
`); + testIife(js.code, "Foo", { answer: 42 }, `
42
`); }); it('requires options.name', () => { @@ -262,14 +262,14 @@ describe("formats", () => { `; - const { code } = svelte.compile(source, { + const { js } = svelte.compile(source, { format: "eval", globals: { answer: "answer" } }); - return testEval(code, "Foo", { answer: 42 }, `
42
`); + return testEval(js.code, "Foo", { answer: 42 }, `
42
`); }); }); diff --git a/test/hydration/index.js b/test/hydration/index.js index 922ff23de8..81634ea151 100644 --- a/test/hydration/index.js +++ b/test/hydration/index.js @@ -27,9 +27,9 @@ describe('hydration', () => { compileOptions ); - const { code } = svelte.compile(fs.readFileSync(filename, 'utf-8'), options); + const { js } = svelte.compile(fs.readFileSync(filename, 'utf-8'), options); - return module._compile(code, filename); + return module._compile(js.code, filename); }; return setupHtmlEqual(); diff --git a/test/js/index.js b/test/js/index.js index ef2a05a09e..6a254b16b4 100644 --- a/test/js/index.js +++ b/test/js/index.js @@ -28,7 +28,7 @@ describe("js", () => { parser: v2 ? 'v2' : 'v1' }); - actual = svelte.compile(input, options).code.replace(/generated by Svelte v\d+\.\d+\.\d+/, 'generated by Svelte vX.Y.Z'); + actual = svelte.compile(input, options).js.code.replace(/generated by Svelte v\d+\.\d+\.\d+/, 'generated by Svelte vX.Y.Z'); } catch (err) { console.log(err.frame); throw err; diff --git a/test/runtime/index.js b/test/runtime/index.js index b491dafa20..96d7ad6445 100644 --- a/test/runtime/index.js +++ b/test/runtime/index.js @@ -36,9 +36,9 @@ describe("runtime", () => { compileOptions ); - const { code } = compile(fs.readFileSync(filename, "utf-8"), options); + const { js } = compile(fs.readFileSync(filename, "utf-8"), options); - return module._compile(code, filename); + return module._compile(js.code, filename); }; return setupHtmlEqual(); @@ -194,14 +194,14 @@ describe("runtime", () => { }); it("fails if options.target is missing in dev mode", () => { - const { code } = svelte$.compile(`
`, { + const { js } = svelte$.compile(`
`, { format: "iife", name: "SvelteComponent", dev: true }); const SvelteComponent = eval( - `(function () { ${code}; return SvelteComponent; }())` + `(function () { ${js.code}; return SvelteComponent; }())` ); assert.throws(() => { @@ -210,14 +210,14 @@ describe("runtime", () => { }); it("fails if options.hydrate is true but the component is non-hydratable", () => { - const { code } = svelte$.compile(`
`, { + const { js } = svelte$.compile(`
`, { format: "iife", name: "SvelteComponent", dev: true }); const SvelteComponent = eval( - `(function () { ${code}; return SvelteComponent; }())` + `(function () { ${js.code}; return SvelteComponent; }())` ); assert.throws(() => { diff --git a/test/sourcemaps/index.js b/test/sourcemaps/index.js index 9835f8ba3f..59342cbe6f 100644 --- a/test/sourcemaps/index.js +++ b/test/sourcemaps/index.js @@ -27,14 +27,14 @@ describe("sourcemaps", () => { ); const input = fs.readFileSync(filename, "utf-8").replace(/\s+$/, ""); - const { code, map, css, cssMap } = svelte.compile(input, { + const { js, css } = svelte.compile(input, { filename, outputFilename: `${outputFilename}.js`, cssOutputFilename: `${outputFilename}.css`, cascade: config.cascade }); - const _code = code.replace(/Svelte v\d+\.\d+\.\d+/, match => match.replace(/\d/g, 'x')); + const _code = js.code.replace(/Svelte v\d+\.\d+\.\d+/, match => match.replace(/\d/g, 'x')); fs.writeFileSync( `${outputFilename}.js`, @@ -42,34 +42,34 @@ describe("sourcemaps", () => { ); fs.writeFileSync( `${outputFilename}.js.map`, - JSON.stringify(map, null, " ") + JSON.stringify(js.map, null, " ") ); if (css.code) { fs.writeFileSync( `${outputFilename}.css`, - `${css}\n/*# sourceMappingURL=output.css.map */` + `${css.code}\n/*# sourceMappingURL=output.css.map */` ); fs.writeFileSync( `${outputFilename}.css.map`, - JSON.stringify(cssMap, null, " ") + JSON.stringify(css.map, null, " ") ); } - assert.deepEqual(map.sources, ["input.html"]); - if (cssMap) assert.deepEqual(cssMap.sources, ["input.html"]); + assert.deepEqual(js.map.sources, ["input.html"]); + if (css.map) assert.deepEqual(css.map.sources, ["input.html"]); const { test } = require(`./samples/${dir}/test.js`); const locateInSource = getLocator(input); - const smc = new SourceMapConsumer(map); + const smc = new SourceMapConsumer(js.map); const locateInGenerated = getLocator(_code); - const smcCss = cssMap && new SourceMapConsumer(cssMap); + const smcCss = css.map && new SourceMapConsumer(css.map); const locateInGeneratedCss = getLocator(css.code || ''); - test({ assert, code: _code, map, smc, smcCss, locateInSource, locateInGenerated, locateInGeneratedCss }); + test({ assert, code: _code, map: js.map, smc, smcCss, locateInSource, locateInGenerated, locateInGeneratedCss }); }); }); });