{
    "componentChunkName": "component---src-templates-note-note-js",
    "path": "/notes/JavaSript-Engine",
    "result": {"data":{"mdx":{"body":"var _excluded = [\"components\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n/* @jsxRuntime classic */\n/* @jsx mdx */\n\nvar _frontmatter = {};\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n    props = _objectWithoutProperties(_ref, _excluded);\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"p\", null, \"just in time compilation, mix of both \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"/notes/interpretation\",\n    \"title\": \"interpretation\"\n  }, \"interpretation\"), \" and \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"/notes/compilation\",\n    \"title\": \"compilation\"\n  }, \"compilation\"), \"\"), mdx(\"p\", null, \"start with interpretation and compile on the go\"), mdx(\"p\", null, \"optimisations\"), mdx(\"ol\", null, mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Inlining\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Copy Elision\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Inline caching\"), mdx(\"li\", {\n    parentName: \"ol\"\n  })), mdx(\"p\", null, \"Just in time compilation\"), mdx(\"h2\", null, \"V8\"), mdx(\"p\", null, \"Interpreter - Ignition\\nCompiler - TurboFan\"), mdx(\"h3\", null, \"Ignition\"), mdx(\"ol\", null, mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"How\", mdx(\"ol\", {\n    parentName: \"li\"\n  }, mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"reducing memory usage, \"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"reducing startup time, and \"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"reducing complexity.\"))), mdx(\"li\", {\n    parentName: \"ol\"\n  })), mdx(\"h3\", null, \"TurboFan\"), mdx(\"h2\", null, \"Further reading\"), mdx(\"ol\", null, mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://www.infoq.com/news/2021/06/v8-sparkplug-compiler/#:~:text=The%20old%20V8%20architecture%20included,generate%20machine%20code%20from%20that\"\n  }, \"https://www.infoq.com/news/2021/06/v8-sparkplug-compiler/#:~:text=The%20old%20V8%20architecture%20included,generate%20machine%20code%20from%20that\"), \".\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://www.digitalocean.com/community/tutorials/js-v8-engine\"\n  }, \"https://www.digitalocean.com/community/tutorials/js-v8-engine\")), mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://blog.logrocket.com/how-javascript-works-optimizing-the-v8-compiler-for-efficiency/\"\n  }, \"https://blog.logrocket.com/how-javascript-works-optimizing-the-v8-compiler-for-efficiency/\"))), mdx(\"p\", null, \"Source Code -> Byte Code -> Machine Code\"), mdx(\"h2\", null, \"Questions\"), mdx(\"ol\", null, mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Can we say that REPL is interpreter? or vice versa?\")));\n}\n;\nMDXContent.isMDXComponent = true;","inboundReferences":[]}},"pageContext":{"slug":"JavaSript-Engine","node":{"childMdx":{"slug":"JavaSript-Engine"}}}},
    "staticQueryHashes": []}