---
title: Update from older versions of the JavaScript (Browser) SDK prior to v6
slug: feature-experimentation/docs/migrate-from-older-versions-javascript-prior-to-v6
docTags: 
createdAt: 2026-08-05T20:40:00.000Z
---

This section provides code examples for how You should leveraging the new [Decision](docId\:RwrjDuC0UfPOcuSdHj7Mx) and [Event Tracking](docId\:dtQJ11RFUGmfz559B_i18) APIs. All existing [Full Stack (Legacy)](docId:6_ik6SSz-WyJLWuCQw7BT) methods and implementation are still supported. See [Optimizely Feature Experimentation - application & migration](docId\:bykQnE4aGRkC5WXhU6Yi5) documentation for the latest updates.

You should adopting the new `Decide`, `Decide All`, and `Track Event` methods as a more flexible and easier-to-use replacement where you currently use `isFeatureEnabled`, `getFeatureVariable`, `getAllFeatures`, or `Track` calls within your implementation.

The following are examples of how to migrate the Full Stack (Legacy) methods to Feature Experimentation methods:

```javascript
// -------------------------------
// Prereq for new methods: create a user
// ------------------------------
const attributes = {
  is_logged_in: true
};
const user = optimizely.createUserContext('user123', attributes);


// -------------------------------
// Is Feature Enabled 
// ------------------------------
// old method
const enabled = optimizely.isFeatureEnabled('flag_1', 'user_123', attributes);

// new method
const decision = user.decide('flag_1');
const enabled = decision['enabled'];


// -------------------------------
// Activate & Get Variation 
// ------------------------------
// old method
const variationKey = optimizely.activate('experiment_1','user_123', attributes);

// new method
const variationKey = decision['variationKey'];


// -------------------------------
// Get All Feature Variables 
// ------------------------------
// old method
const allVarValues = optimizely.getAllFeatureVariables('flag_1', 'user_123');

// new method
const allVarValues = decision['variables'];


// -------------------------------
// Get Enabled Features 
// ------------------------------
// old method
const enabledFlags = optimizely.getEnabledFeatures('user_123');

// new method
const decisions = user.decideAll([OptimizelyDecideOption.ENABLED_FLAGS_ONLY]);
const enabledFlags = Object.keys(decisions);


// -------------------------------
// Track 
// ------------------------------
// old method
const eventTags = { purchase_count: 2 };
optimizely.track('my_purchase_event_key', 'user_123', attributes, eventTags);

// new method
user.trackEvent('my_purchase_event_key', eventTags);
```
