Question: I've heard a lot of talk that enabling bitcode decreases the binary size of an app downloaded from the app store onto iOS 9. I haven't been able to find any resources on whether or not bitcode decreases the binary size on previous iOS versions.

Does enabling bitcode decrease the binary size on iOS 7 or iOS 8?

**EDIT**
According to this [thread](https://forums.developer.apple.com/thread/19743) App Slicing and Bitcode are two separate components. This would make sense considering the documentation for [App Thinning](https://developer.apple.com/library/tvos/documentation/IDEs/Conceptual/AppDistributionGuide/AppThinning/AppThinning.html) splits them into different sections. Is there any official word from Apple on iOS requirements for Bitcode?

Answer: 
First of all: JS is not PHP nor C++ and wont ever be.

`use()` is not for JS. You have lots of possible examples to do what you need, it'a pretty flexible language. Except those in previous answers, I'd like to share one more example:

```
var tax = 'improper';

var priceFactory = function(tax) { 
    // private `tax` variable for this scope
    var tax = tax;

    // or a nightmare to check it
    // var tax = 'number' ==  typeof tax && tax || function() { throw "No tax given"; }();

    return function(quantity, price) {
        return (price * quantity) * (1 + tax / 100);
    }
};

var price = new priceFactory(10); // 10%

var totalPrice = price(1, 100)

```
I don't think JS will ever offer what you want. PHP has a strict scope. If I define a variable inside a function it's limited to that function. Likewise, something defined outside that function is not implicitly available inside the function. `use`, like `global` simply changes where and when you can use a variable inside a specific scope.

JS puts everything in the global scope by default. In fact, it's a form of bizarro world, in that you limit a variable's scope to within a function you either have to have it as an argument or explicitly **limit** the scope to that variable

```
function bob(x) {
    // x is implicitly local
    y = 1; //global
    var z = 2; //local
}

```

In other words, all variables in JS are `use` declared implicitly.