Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

locutus

locutusjs1.5mMIT2.0.38TypeScript support: definitely-typed

Locutus other languages' standard libraries to JavaScript for fun and educational purposes

php, golang, c, ruby, python, js, locutus

readme

Locutus

CI npm version Verified: PHP 8.3 Verified: Python 3.12

All your standard libraries will be assimilated into our JavaScript collective. Resistance is futile.

Welcome to Locutus, where the boundaries of coding languages blur. We're a dedicated collective developers on a mission to explore the possibilities of porting standard libraries from various programming language (Go, Ruby, PHP, C) to JavaScript. Our journey is one of discovery, innovation, and sometimes, delightful chaos.

From the complex to the quirky, we assimilate libraries with a spirit of curiosity and a penchant for experimentation. Our creations typically start as rainy Sunday afternoon puzzles, and end up ranging from groundbreaking functions that enhance the JavaScript ecosystem, to unique oddities that challenge the norms of coding.

As we navigate through this uncharted territory, we invite you to join us. Whether to contribute, learn, or simply marvel at the wonders of cross-language integration and portability, your presence on GitHub is valued.

Embark on this journey with us at locutus.io.

Use our creations at your own risk, and may they inspire you to push the boundaries of what's possible with JavaScript.

Table of contents

Install

yarn add locutus

Use

$ vim php.js
const sprintf = require('locutus/php/strings/sprintf')
const echo = require('locutus/php/strings/echo')
const effectiveness = 'futile'
echo(sprintf('Resistance is %s', effectiveness))
$ node php.js
Resistance is futile
$ vim go.js
const strings = require('locutus/golang/strings')
console.log(strings.Contains('Locutus', 'cut'))
$ node go.js
true

Development

Some guidelines and instructions can be found in CONTRIBUTING.md

Quick commands:

  • yarn check - format + lint + test
  • yarn test:parity - cross-language verification
  • yarn test - full test suite
  • yarn lint - Biome check
  • yarn fix:biome - auto-fix

License

MIT, except for src/php/bc/ and src/php/_helpers/_bc.js which are LGPL-2.1 (derived from PHP's bcmath/Libbcmath). See LICENSE for details.

changelog

Changelog

Our combined changelog and roadmap. It contains todos as well as dones.

Only project-wide changes are mentioned here. For individual function changelogs, please refer to their respective Git histories.

Locutus does not follow SemVer as we're a work in progress - and even though we try, we cannot guarantee BC-safety for the hundreds of contributions across the many languages that Locutus is assimilating.

Backlog

Ideas that will be planned and find their way into a release at one point

  • <input checked="" disabled="" type="checkbox"> Address the 25 remaining test failures → reduced to 1 (set_time_limit is intentionally untestable)
  • <input checked="" disabled="" type="checkbox"> Compare example test cases for PHP against php -r → implemented via parity verification system (yarn test:parity)
  • <input checked="" disabled="" type="checkbox"> Have one way of checking pure JS arrays → standardized to Array.isArray() in 43 files (PR #518). Object checking patterns remain varied (acceptable - different use cases).
  • <input checked="" disabled="" type="checkbox"> Investigate callable helper → Only 2 files use complex resolution (is_callable.js, call_user_func_array.js). Low ROI for abstraction. array_walk only accepts functions directly.
  • <input checked="" disabled="" type="checkbox"> Parse requires with ts-morph → used existing esprima AST parsing to extract require() calls. 85 PHP functions now show internal dependencies on website with links
  • <input checked="" disabled="" type="checkbox"> Verification: verify examples against native runtimes with Docker (254 functions verified across 5 languages)
    - [x] PHP: 170 functions verified against PHP 8.3
    - [x] Go: 20 functions verified against Go 1.23
    - [x] Python: 23/25 (92%) - remaining: capwords (impl difference), printable (.length)
    - [x] Ruby: 30/32 (94%) - remaining: sample (random), acos (example incompatible)
    - [x] C: 11/18 (61%) - remaining: sprintf, strchr, strstr, strcat, frexp, isspace, atof (complex/different semantics)
    - [x] Infrastructure: parallel execution, caching, modular architecture, per-language handlers, type-safe config
    - [x] CI integration: `parity verified:` header in function files, Zod validation, `yarn test:parity`
    - [x] Badge: "Verified against PHP 8.3" (added to README, PR #501)
  • <input disabled="" type="checkbox"> Modernize, e.g.:
    - [x] Migrate Babel 6 → TS (Node 22+ typestripping) - removed Babel, using `node --experimental-strip-types`
    - [x] Migrate Mocha → Vitest (PR #506)
    - [ ] Migrate custom `test/browser/app.js` and `yarn browser:watch`/browserify → Vitest with Playwright support (blocked on ESM migration - Vite browser mode requires ESM, but source functions are CJS)
    - [ ] Drop Node < 22 support (planned for v3; requires Node >= 22)
    - [x] ESLint/PrettierBiome (done in v2.0.33)
    - [ ] Migrate CJSESM (v3.0 candidate - 448 files, use tsup for dual exports, breaking change for consumers)
    - [x] ~~Migrate Custom tagged releasesChangesets~~ (current process works well: npm version + gh release)
    - [x] Migrate JSTS for infra scripts (use Node v22+ native type stripping to run)
  • <input checked="" disabled="" type="checkbox"> TypeScript:
    - [x] Convert `src/_util/` to TypeScript
    - [x] Strict mode compatible. Node type stripping compatible
  • <input disabled="" type="checkbox"> Expansion (port more functions to the different languages) we'll go from most feasible + sensible, to least :) Also: improve header comment driven test coverage to expose more edge cases. And finally another way to expand is on parity test coverage, and fixing issues found by doing that.
    - **New language candidates** (missing from `src/`, ranked by suitability for Locutus):
      1. **Perl** (Excellent) - PHP's spiritual ancestor, dynamically typed, function-first stdlib. Functions: `join`, `split`, `grep`, `map`, `sort`, `reverse`, `substr`, `index`, `uc`, `lc`, `chomp`. Module structure: core + `List::Util`, `File::Basename`.
      2. **Lua** (Excellent) - Simple, clean, educational. Small but organized stdlib. Functions: `string.sub`, `string.upper`, `string.lower`, `table.insert`, `table.sort`, `math.floor`. Module structure: `string`, `table`, `math`, `io`, `os`.
      3. **R** (Good) - Vectorized but function-centric; strong text + math. Functions: `nchar`, `substr`, `toupper`, `tolower`, `paste`, `grep`, `gsub`, `sprintf`, `sort`.
      4. **Julia** (Good) - Multiple dispatch and rich stdlib, great for math-heavy functions. Functions: `split`, `join`, `replace`, `lowercase`, `uppercase`, `sort`, `floor`, `round`. Modules: `Base`, `Printf`, `Statistics`.
      5. **Elixir** (Good) - Module/function oriented; `String` and `Enum` map well to `strings`/`array`. Functions: `String.split`, `String.replace`, `String.downcase`, `String.upcase`, `Enum.map`, `Enum.filter`.
      6. **Clojure** (Good) - Strong function-first stdlib; `clojure.string` mirrors JS string ops. Functions: `clojure.string/split`, `join`, `replace`, `lower-case`, `upper-case`, plus core `map`/`filter`/`reduce`.
      7. **AWK** (Good) - Text processing powerhouse, function-based. Functions: `length`, `substr`, `index`, `split`, `gsub`, `sub`, `tolower`, `toupper`, `sprintf`. Could be single category or split by type.
      8. **Bash** (Moderate) - Useful for CLI, but command-based nature challenging. Built-ins: `printf`, `test`, string ops via parameter expansion (substring, replace, case conversion).
      9. **Java** (Moderate) - Popular but OOP-heavy. Static methods only: `Math.max`, `Math.min`, `Math.abs`, `Arrays.sort`, `String.format`. Package structure: `java.lang`, `java.util`.
      10. **Rust** (Lower) - Ownership model + method-heavy, but solid stdlib. Methods: `trim`, `split`, `chars`. Modules: `std::string`, `std::collections`.
      11. **Haskell** (Lower) - Different paradigm but educational. Functions: `map`, `filter`, `foldl`, `foldr`, `zip`. Modules: `Data.List`, `Data.Char`.
    - **Selection criteria**: (1) Type compatibility with JS, (2) Stdlib organized in modules/categories, (3) Function-oriented (or easy to wrap methods as functions), (4) Popularity/demand, (5) Semantic compatibility with JS, (6) Clean mapping to existing `src` module layout (strings/array/math/pcre/etc.)
  • <input checked="" disabled="" type="checkbox"> Docs/Website:
    - [x] The function pages could have a badge themselves in which language version they were parity checked (similar to what was added in the README.md)
    - [x] website: Render authors server-side (PR #511)
    - [x] website: Fix the search functionality (verified working 2026-01-07)
    - [x] Hexo upgrade to 8.1.1 (PR #512) - Next.js migration deferred
    - [x] Fix Search by function name or behavior (verified working 2026-01-07)
    - [x] "Rosetta Stone" view for cross-language comparison (PR #520)

main

Released: TBA. Diff.

v2.0.38

Released: 2026-01-19. Diff.

Infrastructure

  • Restore published Node engine range to >= 10 for 2.x releases (engine bumps now treated as major changes)
  • Add CI guardrail to block raising engines.node without a major version bump

v2.0.37

Released: 2026-01-08. Diff.

New Functions (32 across 7 languages)

  • R: toupper, tolower, nchar, sqrt, round, max, min (7)
  • Lua: string.len, string.rep, string.reverse, math.sqrt, math.sin, math.cos, math.max, math.min (8)
  • AWK: cos, exp, log, sin, sqrt (5)
  • Elixir: String.downcase, String.upcase, String.length, String.reverse (4)
  • Clojure: string/lower-case, string/upper-case, string/reverse, string/trim, string/blank? (5)
  • Julia: lowercase, uppercase (2)
  • Perl: reverse (1)

Infrastructure

  • Moved rosetta.yml from src/_data/ to src/ for cleaner structure
  • Fixed parity test handlers for Julia, Elixir, Clojure, R (string quoting, float precision)
  • Updated cross-language mappings in rosetta.yml

v2.0.36

Released: 2026-01-08. Diff.

  • Perl string functions: uc (uppercase), lc (lowercase), substr (with negative offset support)
  • Fixed parity test string normalization for Perl

v2.0.35

Released: 2026-01-08. Diff.

  • Lua string functions: upper, lower, sub (with 1-based indexing and negative index support)
  • AWK builtin functions: tolower, toupper
  • Fixed parity test string normalization for Lua and AWK

v2.0.34

Released: 2026-01-08. Diff.

New Languages (7)

  • Perl 5.40: POSIX::ceil, POSIX::floor, core::length
  • Lua 5.4: math.ceil, math.floor, math.abs
  • R 4.4: ceiling, floor, abs
  • Julia 1.11: Base.ceil, Base.floor, Base.abs
  • Elixir 1.18: Float.ceil, Float.floor, Kernel.abs
  • Clojure 1.12: Math/ceil, Math/floor, Math/abs
  • GNU AWK 5.3: length, int, substr

New Functions

  • Go: 11 strings functions (Contains, ContainsAny, Count, EqualFold, HasPrefix, HasSuffix, Index, LastIndex, Repeat, ReplaceAll, Split)
  • Ruby: 14 Math functions (sqrt, sin, cos, exp, log, tan, asin, atan, cbrt, cosh, log10, log2, sinh, tanh)
  • Python: 8 math functions (ceil, floor, exp, fabs, log, log10, log2, trunc)

Parity Verification

  • New cross-language verification system with Docker
  • PHP: 164 functions verified against PHP 8.3
  • Python: 23/25 functions verified against Python 3.12
  • Go: 20 functions verified against Go 1.23
  • Ruby: 30/32 functions verified against Ruby 3.3
  • C: 11/18 functions verified against GCC
  • parity verified: header in function files for CI integration
  • Parallel execution with caching for fast test runs

Website

  • Rosetta Stone: Cross-language function links on each function page
  • Hover tooltips on verified badges showing exact version
  • Internal dependencies shown with clickable links
  • Authors rendered server-side instead of client-side JS
  • Hexo upgrade 7.1.1 → 8.1.1

Infrastructure

  • Converted src/_util/ to TypeScript, removed Babel 6
  • Migrated from Mocha/Chai to Vitest
  • Updated Node engine requirement from >= 10 to >= 22
  • Added stricter Biome rules: noAccumulatingSpread, useAwait, noFloatingPromises
  • CI runs full lint checks (lint:ts, lint:headers, lint:no-stray-js)
  • Standardized array checking to Array.isArray() across 43 files
  • Added composer.json for PHP project integration

Dependencies

  • mocha 10 → 11, chai 4 → 6, rimraf 5 → 6, cross-env 7 → 10

Bug Fixes

  • Node 25 compatibility: async queue drain, indentString
  • Docker image pull optimization (once at init, not per-function)

v2.0.33

Released: 2026-01-07. Diff.

Bug Fixes

  • <input checked="" disabled="" type="checkbox"> quoted_printable_encode: Fixed soft line break stripping logic
  • <input checked="" disabled="" type="checkbox"> get_defined_functions: Updated unrealistic test expectation
  • <input checked="" disabled="" type="checkbox"> array_diff_uassoc: Corrected expected return value to match PHP
  • <input checked="" disabled="" type="checkbox"> array_merge_recursive: Reimplemented to properly merge arrays recursively
  • <input checked="" disabled="" type="checkbox"> array_splice: Fixed test to use arrays instead of objects

Tooling Updates

  • <input checked="" disabled="" type="checkbox"> Updated Yarn from 4.0.1 to 4.12.0
  • <input checked="" disabled="" type="checkbox"> Added Knip for unused code detection
  • <input checked="" disabled="" type="checkbox"> Added TypeScript and @types/node as devDependencies
  • <input checked="" disabled="" type="checkbox"> Created initial TypeScript type definitions (index.d.ts)
  • <input checked="" disabled="" type="checkbox"> Added cross-language verification script (scripts/verify.ts)
  • <input checked="" disabled="" type="checkbox"> Migrated from ESLint/Prettier to Biome
  • <input checked="" disabled="" type="checkbox"> Introduced yarn check command

Documentation

  • <input checked="" disabled="" type="checkbox"> Added CORE_MAINTAINER.md maintenance workflow
  • <input checked="" disabled="" type="checkbox"> Documents LGPL licensing for bc functions (closes #473)
  • <input checked="" disabled="" type="checkbox"> Added CONTRIBUTING.md improvements

Expanded Coverage

  • <input checked="" disabled="" type="checkbox"> Go strings: +10 functions (HasPrefix, HasSuffix, ToLower, ToUpper, Trim, TrimSpace, Replace, Split, Join, Repeat)
  • <input checked="" disabled="" type="checkbox"> Go strconv: +6 functions (Atoi, Itoa, ParseBool, ParseInt, FormatBool, FormatInt)
  • <input checked="" disabled="" type="checkbox"> Python string: +5 functions (digits, hexdigits, octdigits, printable, whitespace)
  • <input checked="" disabled="" type="checkbox"> Python math: +7 functions (factorial, gcd, isfinite, isinf, isnan, pow, sqrt)
  • <input checked="" disabled="" type="checkbox"> Ruby String: +11 functions (capitalize, chomp, chop, downcase, upcase, include, length, reverse, start_with, end_with, strip)
  • <input checked="" disabled="" type="checkbox"> Ruby Array: +6 functions (compact, first, last, flatten, sample, uniq)
  • <input checked="" disabled="" type="checkbox"> C ctype.h: +8 functions (isalnum, isalpha, isdigit, islower, isupper, isspace, tolower, toupper)
  • <input checked="" disabled="" type="checkbox"> C stdlib.h: +2 functions (atoi, atof)
  • <input checked="" disabled="" type="checkbox"> C string.h: +5 functions (strlen, strcmp, strchr, strstr, strcat)

v2.0.32

Released: 2024-04-05. Diff.

  • <input checked="" disabled="" type="checkbox"> Update intro and add to the NPM module as a README.md

v2.0.31

Released: 2024-04-05. Diff.

  • <input checked="" disabled="" type="checkbox"> dx: Add use strict to generated tests
  • <input checked="" disabled="" type="checkbox"> dx: Add Stale Action
  • <input checked="" disabled="" type="checkbox"> file_exists: Introduced (in #461, thx @erikn69)
  • <input checked="" disabled="" type="checkbox"> strtotime: Add support oracle dates (fixes #340)
  • <input checked="" disabled="" type="checkbox"> bin2hex: Add support for multi-byte characters (fixes #427)
  • <input checked="" disabled="" type="checkbox"> var_dump: Detect circular references (fixes #305)
  • <input checked="" disabled="" type="checkbox"> escapeshellarg: Add Windows support (fixes #395)
  • <input checked="" disabled="" type="checkbox"> fmod: Fix Uncaught RangeError: toFixed() digits argument must be between 0 and 100 (thx @dekairi, fixes #417)

v2.0.30

Released: 2024-04-05. Diff.

  • <input checked="" disabled="" type="checkbox"> Relax yarn engine requirement (fixes #467)
  • <input checked="" disabled="" type="checkbox"> Allow for custom mocha tests for functions (that arent generated based on header comments)

v2.0.29

Released: 2024-04-04. Diff.

  • <input checked="" disabled="" type="checkbox"> Fix issue #458: unserialize fails when serialized array contains (@kukawski)
  • <input checked="" disabled="" type="checkbox"> dx: Switch from master -> main branch
  • <input checked="" disabled="" type="checkbox"> dx: Upgrade to Yarn 4 managed by Corepack
  • <input checked="" disabled="" type="checkbox"> dx: Add testing for Node 20
  • <input checked="" disabled="" type="checkbox"> dx: Add prettier & upgrade ESLint & StandardJS
  • <input checked="" disabled="" type="checkbox"> dx: Upgrade Hexo to latest
  • <input checked="" disabled="" type="checkbox"> dx: Clarify contributing docs
  • <input checked="" disabled="" type="checkbox"> dx: Allow all core contributors to cut NPM releases by pushing Git tags (GHA CI handles the rest)
  • <input checked="" disabled="" type="checkbox"> dx: Upgrade all remaining dependencies

v2.0.16

Released: 2019-06-12. Diff.

  • <input checked="" disabled="" type="checkbox"> Switch from Travis CI to GitHub Actions
  • <input checked="" disabled="" type="checkbox"> Fix ReDOS on IPv6
  • <input checked="" disabled="" type="checkbox"> Basic timezone support in strtotime

v2.0.11

Released: 2019-06-12. Diff.

  • <input checked="" disabled="" type="checkbox"> functions: Community-contributed function improvements, see respective functions' changelogs in the Diff:
  • <input checked="" disabled="" type="checkbox"> ci: test Node.js 6, 8, 10 and 11 (#384)
  • <input checked="" disabled="" type="checkbox"> website: Fix code listing on locutus website (#379)

v2.0.10

Released: 2018-09-07. Diff.

  • <input checked="" disabled="" type="checkbox"> functions: Community-contributed function improvements, see respective functions' changelogs in the Diff.

v2.0.9

Released: 2017-06-22. Diff.

  • <input checked="" disabled="" type="checkbox"> functions: Community-contributed function improvements, see respective functions' changelogs in the Diff.

v2.0.8

Released: 2017-02-23. Diff.

  • <input checked="" disabled="" type="checkbox"> Upgrade eslint and fix newly found issues accordingly
  • <input checked="" disabled="" type="checkbox"> functions: Community-contributed function improvements, see respective functions' changelogs in the Diff.

v2.0.7

Released: 2017-02-09. Diff.

  • <input checked="" disabled="" type="checkbox"> functions: Community-contributed function improvements, see respective functions' changelogs in the Diff.

v2.0.6

Released: 2016-06-16. Diff.

  • <input checked="" disabled="" type="checkbox"> Language fixes

v2.0.5

Released: 2016-06-16. Diff.

  • <input checked="" disabled="" type="checkbox"> Cache node modules on Travis so we'll be less dependent on npm connectivity

v2.0.4

Released: 2016-05-25. Diff.

  • <input checked="" disabled="" type="checkbox"> Upgrade depurar to 0.2.2, fixing an issue with the testwriter (@kukawski)
  • <input checked="" disabled="" type="checkbox"> Add the 'reimplemented by' and 'parts by' contributionKeys to the /authors website page
  • <input checked="" disabled="" type="checkbox"> Fix linting warnings when hacking on website by adding eslint dependencies locally
  • <input checked="" disabled="" type="checkbox"> Improve array_rand: Fix coding style, hangs when selected huge number of keys from huge array, function signature
    (@kukawski)

v2.0.3

Released: 2016-05-22. Diff.

  • <input checked="" disabled="" type="checkbox"> Minor util.js refactoring
  • <input checked="" disabled="" type="checkbox"> Use hexo deploy instead of custom bash script to aid Windows compatibility
  • <input checked="" disabled="" type="checkbox"> Use cross-env and rimraf in build scripts to aid Windows compatibility
  • <input checked="" disabled="" type="checkbox"> Improve Travis auto-deployments (now using official deploy methods)
  • <input checked="" disabled="" type="checkbox"> Switch from locutusjs.io to locutus.io
  • <input checked="" disabled="" type="checkbox"> Triage all open issues and PRs
  • <input checked="" disabled="" type="checkbox"> Triage all open issues and PRs
  • <input checked="" disabled="" type="checkbox"> docs: Miscellaneous cosmetic updates
  • <input checked="" disabled="" type="checkbox"> website: Miscellaneous cosmetic updates
  • <input checked="" disabled="" type="checkbox"> website: Show languages & functions in profile sidebar
  • <input checked="" disabled="" type="checkbox"> website: Add social buttons
  • <input checked="" disabled="" type="checkbox"> website: Let Travis auto-deploy to gh-pages on main changes
  • <input checked="" disabled="" type="checkbox"> website: Use Hexo deploy vs bash script

v2.0.2

Released: 2016-05-02. Diff.

  • <input checked="" disabled="" type="checkbox"> Don't use files in package.json as we don't ship all of dist now

v2.0.1

Released: 2016-05-02. Diff.

  • <input checked="" disabled="" type="checkbox"> Don't use bin in package.json as we don't ship cli.js

v2.0.0

Released: 2016-05-02. Diff.

  • <input checked="" disabled="" type="checkbox"> website: Add profile to sidebar
  • <input checked="" disabled="" type="checkbox"> Rename _locutus_shared to _helpers. Rename _locutus_shared_bc to _bc
  • <input checked="" disabled="" type="checkbox"> website: Fix jumpy scrolling due to on the githubs
  • <input checked="" disabled="" type="checkbox"> website: DRY up add_more code
  • <input checked="" disabled="" type="checkbox"> website: About as homepage
  • <input checked="" disabled="" type="checkbox"> Transpile to ES5 before publishing to npm
  • <input checked="" disabled="" type="checkbox"> Add estarget option to all functions, set ip2long to es2015
  • <input checked="" disabled="" type="checkbox"> Change fix(me)? and Todo to @todo
  • <input checked="" disabled="" type="checkbox"> Replace single line /**/ comments with //
  • <input checked="" disabled="" type="checkbox"> Enforce a 100 character line-length via eslint, and change all functions accordingly
  • <input checked="" disabled="" type="checkbox"> Do not pass values by reference via the window global, use e.g. countObj.value and errorObj.value instead
  • <input checked="" disabled="" type="checkbox"> Have one way of getting an ini value and its default
  • <input checked="" disabled="" type="checkbox"> Track all cases of setTimeout, use them without window prefix. Remove codez replace hack
  • <input checked="" disabled="" type="checkbox"> Track all cases of XMLHttpRequest
  • <input checked="" disabled="" type="checkbox"> Test is_array in-browser to see if the require for ini_get works correctly with Browserify
  • <input checked="" disabled="" type="checkbox"> Deprecate blocking ajax requests in e.g. file_get_contents
  • <input checked="" disabled="" type="checkbox"> Use native sha1 and md5 encoding when available
  • <input checked="" disabled="" type="checkbox"> Remove XUL from functions
  • <input checked="" disabled="" type="checkbox"> Rename strictForIn to sortByReference
  • <input checked="" disabled="" type="checkbox"> Remove // (BEGIN|END) (STATIC|REDUNDANT)
  • <input checked="" disabled="" type="checkbox"> Index all notes
  • <input checked="" disabled="" type="checkbox"> Either deprecate or document all functions using eval or new Function
  • <input checked="" disabled="" type="checkbox"> Port Util to ES6 class
  • <input checked="" disabled="" type="checkbox"> Write one function (ip2long) in ES6 and make it pass tests & linting
  • <input checked="" disabled="" type="checkbox"> Deprecate support for node_js: 0.8
  • <input checked="" disabled="" type="checkbox"> Make Travis fail on eslint issues
  • <input checked="" disabled="" type="checkbox"> Move CHANGELOG to own file
  • <input checked="" disabled="" type="checkbox"> Make all functions pass eslint with JavaScript Standard Style
  • <input checked="" disabled="" type="checkbox"> Remove _workbench and _experimental. They are available for reference in 1.3.2 but making them harder to
    find for newcomers should help avoid a lot of complaints
  • <input checked="" disabled="" type="checkbox"> Move functions that overly rely on ini & locales & global & ajax file operations to _legacy
  • <input checked="" disabled="" type="checkbox"> Address ~50 test failures that were previously skipped and now enabled
  • <input checked="" disabled="" type="checkbox"> json_* functions can leverage Node's
  • <input checked="" disabled="" type="checkbox"> Add ES6 capabilities
  • <input checked="" disabled="" type="checkbox"> Adopt better global detection, use $locutus.golang.<specifics>
  • <input checked="" disabled="" type="checkbox"> Add more 'social' buttons to website (twitter, github)
  • <input checked="" disabled="" type="checkbox"> Rework injectweb after structural changes in util.js
  • <input checked="" disabled="" type="checkbox"> Use require for dependencies
  • <input checked="" disabled="" type="checkbox"> Remove ; from examples in accordance with JavaScript Standard Style
  • <input checked="" disabled="" type="checkbox"> Use mocha for generating language tests
  • <input checked="" disabled="" type="checkbox"> Use require for dependencies
  • <input checked="" disabled="" type="checkbox"> In util.opener: First * should point to the requesting/current language
  • <input checked="" disabled="" type="checkbox"> Split out the npm module so you could do var sprintf = require('locutus/sprintf')
  • <input checked="" disabled="" type="checkbox"> Launch BC breaking blogpost
  • <input checked="" disabled="" type="checkbox"> Roll out support for Ruby, C, Go, Python

v1.3.2

Released: April 4, 2016