rip-lang 1.3.0 → 1.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -9,9 +9,9 @@
9
9
  </p>
10
10
 
11
11
  <p align="center">
12
- <a href="CHANGELOG.md"><img src="https://img.shields.io/badge/version-1.1.1-blue.svg" alt="Version"></a>
12
+ <a href="CHANGELOG.md"><img src="https://img.shields.io/badge/version-1.3.0-blue.svg" alt="Version"></a>
13
13
  <a href="#es2022-target"><img src="https://img.shields.io/badge/target-ES2022-blue.svg" alt="Target"></a>
14
- <a href="#current-status"><img src="https://img.shields.io/badge/tests-864%2F864-brightgreen.svg" alt="Tests"></a>
14
+ <a href="#current-status"><img src="https://img.shields.io/badge/tests-878%2F878-brightgreen.svg" alt="Tests"></a>
15
15
  <a href="#current-status"><img src="https://img.shields.io/badge/coverage-100%25-brightgreen.svg" alt="Coverage"></a>
16
16
  <a href="#zero-dependencies"><img src="https://img.shields.io/badge/dependencies-ZERO-brightgreen.svg" alt="Dependencies"></a>
17
17
  <a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-green.svg" alt="License"></a>
@@ -634,9 +634,20 @@ user?.profile?.name # ES6 optional chaining (native)
634
634
  arr?[0] # CoffeeScript soak (existence check)
635
635
  fn?(arg) # CoffeeScript soak call
636
636
 
637
- # Nullish coalescing
637
+ # Nullish coalescing (?? - rejects null OR undefined)
638
638
  port = config.port ?? 8080
639
639
 
640
+ # Otherwise operator (!? - rejects ONLY undefined)
641
+ timeout = config.timeout !? 5000 # null and 0 are valid!
642
+ enabled = options.enabled !? true # false means disabled, undefined means default
643
+
644
+ # Comparison:
645
+ null ?? 'default' # → 'default' (null fails)
646
+ null !? 'default' # → null (null is defined!)
647
+
648
+ # Use ?? when: Both null and undefined should use default
649
+ # Use !? when: Only undefined should use default (null/false/0 are meaningful)
650
+
640
651
  # Legacy existential operator (CoffeeScript compatibility)
641
652
  value = x ? y # SPACE? syntax (auto-converts to ??)
642
653
  value = x ?? y # Preferred modern syntax