Q:

What is Prologue Directives?

I stumbled upon something people choose to call Prologue Directives. More commonly known with the "use strict"; string literal in JavaScript. Which i already know all about. But the common denominator Prologue Directive. What it is? There's very little documentation available on this subject. Best one is the question i linked.
ECMAScript multiple Prologue Directives
My questions are generic:
What are they?
What can they be used for?
Who uses them and why?
Can i make them?
Should i?

A:

No need for documentation. Just look in the source.

A Directive Prologue is the longest sequence of ExpressionStatement
  productions occurring as the initial SourceElement productions of a
  Program or FunctionBody and where each ExpressionStatement in the
  sequence consists entirely of a StringLiteral token followed a
  semicolon. The semicolon may appear explicitly or may be inserted by
  automatic semicolon insertion. A Directive Prologue may be an empty
  sequence.
A Use Strict Directive is an ExpressionStatement in a Directive
  Prologue whose StringLiteral is either the exact character sequences
  "use strict" or 'use strict'. A Use Strict Directive may not contain
  an EscapeSequence or LineContinuation.
A Directive Prologue may contain more than one Use Strict Directive.
  However, an implementation may issue a warning if this occurs.

In other words, Directive Prologue is the longest sequence of string literal + semicolon at the exact start of function or program (top-level code):
(function(){
  "use strict"; // <-- Directive Prologue
})()

or:
(function() {
  // Directive Prologue start
  "foo bar"
  "baz";
  '123';
  '';
  // Directive Prologue end
})();

or:
'blah'; // <-- Directive Prologue (top-level code)
/* rest of the code here */

Notice that as soon as the string literal is not the first statement, it's no longer a Directive Prologue:
var x;
"use strict"; // <-- NOT a Directive Prologue

or:
(function() {
  1 + "use magic"; // <-- NOT a Directive Prologue
})();

