Perl and Python influences in JavaScript

[2013-02-24] esnext, dev, javascript, jslang
(Ad, please don’t block)

If you search the Mozilla Central code base for the texts "Perl" and "Python" (don’t ignore case) then the comments mention what methods have been borrowed from those languages. The paths mentioned below are relative to /js/src/.
[Inspiration: a blog post by Ziyun Fei.]

Perl influences in ECMAScript 5

String (jsstr.cpp):
  • String.prototype.match()
  • String.prototype.replace()
  • String.prototype.split()
  • String.prototype.substr()
Array (jsarray.cpp):
  • Array.prototype.join()
  • Array.prototype.reverse()
  • Array.prototype.sort()
  • Array.prototype.push()
  • Array.prototype.pop()
  • Array.prototype.shift()
  • Array.prototype.unshift()
  • Array.prototype.splice()
RegExp (builtin/RegExp.cpp): generally Perl-inspired, one comment attests to that fact.

Python influences in ECMAScript 5

String (jsstr.cpp):
  • String.prototype.concat()
  • String.prototype.slice()
  • String.prototype.match()
Array (jsarray.cpp):
  • Array.prototype.concat()
  • Array.prototype.slice()

ECMAScript 6

ECMAScript 6 was influenced by several languages. Examples:
  • Arrow functions [1] and classes [2] were inspired by CoffeeScript.
  • Generators [3] were inspired by Python.


  1. ECMAScript 6: arrow functions and method definitions
  2. ECMAScript 6: classes
  3. Iterators and generators in ECMAScript 6