---
title: Javascript-SDK - 4.0.0
slug: feature-experimentation/release-notes/javascript-sdk-4-0-0
docTags: 
createdAt: 2026-07-20T15:45:40.383Z
---

\## \[4.0.0] - April 30, 2020

\### New Features

\- Removed lodash dependency
\- ES module entry point for the browser - \`"module"\` property of \`package.json\` points to \`dist/optimizely.browser.es.min.js\` (\[#445]\([https://github.com/optimizely/javascript-sdk/pull/445](https://github.com/optimizely/javascript-sdk/pull/445)))

\### Breaking Changes

\- Removed \`Promise\` polyfill from browser entry point (\[417]\([https://github.com/optimizely/javascript-sdk/pull/417](https://github.com/optimizely/javascript-sdk/pull/417))).
\- Changed functionality of JSON schema validation in all entry points (\[442]\([https://github.com/optimizely/javascript-sdk/pull/442](https://github.com/optimizely/javascript-sdk/pull/442))).
\- Previously, \`skipJSONValidation\` flag was used by the user to specify whether the JSON object should be validated.
\- Now, \`skipJSONValidation\` has been removed entirely from all entry points. Instead, a user will need to import \`jsonSchemaValidator\` from \`@optimizely/optimizely-sdk/dist/optimizely.json\_schema\_validator.min.js\` and pass it to \`createInstance\` to perform validation as shown below:
\`\`\`js
const optimizelySDK = require('@optimizely/optimizely-sdk');
const jsonSchemaValidator = require('@optimizely/optimizely-sdk/dist/optimizely.json\_schema\_validator.min');

// Require JSON schema validation for the datafile
var optimizelyClientInstance = optimizely.createInstance(\{
datafile: datafile,
jsonSchemaValidator: jsonSchemaValidator,
});
\`\`\`
\- Dropped support for Node.js version \<8 (\[#456]\([https://github.com/optimizely/javascript-sdk/pull/456](https://github.com/optimizely/javascript-sdk/pull/456)))

\### Bug fixes

\- Changed \`track()\` to log a warning instead of an error when the event isn't in the datafile (\[#418]\([https://github.com/optimizely/javascript-sdk/pull/418](https://github.com/optimizely/javascript-sdk/pull/418)))
\- Fixed return type for \`close\` method in TypeScript type definitions (\[#410]\([https://github.com/optimizely/javascript-sdk/pull/410](https://github.com/optimizely/javascript-sdk/pull/410)))
\- Node.js datafile manager uses gzip,deflate compression for requests (\[#456]\([https://github.com/optimizely/javascript-sdk/pull/456](https://github.com/optimizely/javascript-sdk/pull/456)))

[https://github.com/optimizely/javascript-sdk/releases/tag/v4.0.0](https://github.com/optimizely/javascript-sdk/releases/tag/v4.0.0)
