22

where can I find the source code of native js functions, for example I want to look at eval() function

2
  • Depending on which one too... Commented Apr 23, 2012 at 22:28
  • 2
    Just want to point out: eval in particular is the whole engine (or at least, it's an entry point to the whole engine). There are lots of Javascript engines out there to look at. Commented Apr 23, 2012 at 23:04

3 Answers 3

25

Both Chrome and Firefox are open source and you can look at the implementation of any part of the javascript engine in the source code for those products. Other browsers have their own implementation (like IE) that is not available to the public to look at.

The Chrome v8 javascript engine code is here: https://github.com/v8/v8

The Firefox SpiderMonkey engine code is here: https://searchfox.org/mozilla-central/source/js/src

Warning, if you aren't already familiar with those products and their tools, it may take while to get familiar enough to find what you're looking for.

These links may change over time, but can easily be found with Google searches if they move.

Sign up to request clarification or add additional context in comments.

3 Comments

i found v8 but not found the code that contains the functions of the window object
@Igor - The window object is not part of Javascript per se. It's a host object so you would find code for it in the actual implementation of Chrome or Firefox, not in the JS engine.
both links are outdated :(
4

Javascript is a script language that is implemented within a Browser's code-base. This means that there may be different implementations of the script language, with different levels of quality, and possibly different intepretations of what is required. Hence the head-against-wall frustrations of many a web-developer when dealing with different web-browsers.

It is possible for you to examine a browser's implementation of Javascript if the browser is an Open Source version, eg: Chrome, Firefox, as given in other answers listed.

Comments

2

In the JavaScript engine's source code.

11 Comments

can I online look at the code?
And keep in mind that the source isn't in JavaScript -- it's usually either C or C++. (Otherwise it wouldn't be native!)
@ASD - V8 (the engine used in Google Chrome) is here: code.google.com/p/v8/source/browse.
@jfriend00, it may be obvious to you, but it's certainly not obvious to the poster, otherwise he wouldn't have asked the question. If it was obvious, then the question would have been closer to "where in the source code of engine X is the eval function defined?". And "tell us something we don't already know"? This is not an answer for you or the people who already know, it's for the ones who don't.
@Abdul, the JS engine is indeed like the JVM or CLR. In the case of JS, the standard does not explicitly specify which language the VM and libraries must be written in, but both are usually written as native code. Try for example something like console.log(Date) and you'll most likely see function Date() { [native code] }.
|

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.